Adjust oven rack to middle and heat oven to 300°F Pat pork dry with paper towels and season with salt and pepper. Heat the butter and oil in a large Dutch oven over medium high heat until the foaming subsides. Working in batches, cook pork until browned on all sides, about 5 minutes. Transfer to a plate.
Pour off all but 1 tbsp fat from the pot. Cook onions until softened, about 3 minutes. Add the garlic and paprika and cook until fragrant, about 30 seconds. Stir in pork, broth, dill, 1 tsp salt, and 1/2 tsp pepper and bring to a simmer. Cover, transfer pot to oven, and cook until the meat is just tender, about 1 1/2 hours.
Stir in sauerkraut and sugar, cover, and return pot to oven. Cook until the pork is fork tender, about 45 minutes. Off the heat, stir in sour cream. Serve, garnishing with dill.