Place the bacon in a Dutch oven or stockpot and cook, stirring, over medium-high heat until the fat begins to render, about 3 minutes. Add the beef and cook, stirring, until brown on all sides, about 5 minutes. Remove the meat from the pan with a slotted spoon and drain on paper towels.
To the fat in the pan, add the onions and carrots, and stir to coat. Cook until soft, about 4 minutes. Add the garlic, oregano, dill seeds, and bay leaves and cook, stirring, for 1 minute. Add the red wine vinegar and stir to deglaze the pan. Return the meat to the pot and add the water, salt, and pepper and bring to boil. Reduce the heat and simmer partially covered until the beef is tender, about 2 hours.
Meanwhile, place the beets on a baking sheet and brush with the oil. Roast until tender and can be pierced easily with a knife, about 1 hour. Remove from the oven and let sit until cool enough to handle. Trim the stem and root ends and remove the skins. Coarsely grate and set aside.
When the meat is tender and falling apart, add the beets, potatoes, and cabbage. Simmer over low heat for another 30 minutes. Season with additional red wine vinegar, salt and freshly ground black pepper, to taste.
Ladle borscht into bowls and garnish with a dollop of sour cream and pinch of fresh dill.