Combine all ingredients in Dutch oven and bring to boil over high heat. Adjust heat to simmer and cook, covered, until pork is tender, about 2 hours, occasionally skimming foam off surface.
Transfer pork to large plate or cutting board. Discard onion, carrot, and bay leaves. When pork is cool enough to handle, cut into bite-size pieces (it's OK if meat starts to shred). Skim fat from surface of broth. (Alternatively, cool broth completely and refrigerate overnight. Refrigerate pork separately.)
Reserve ½ cup broth. In Dutch oven, bring remaining broth to boil over high heat. Add potatoes, cabbage, and ½ teaspoon salt. Adjust heat to maintain gentle simmer and cook, covered, until potatoes are just tender, 8 to 10 minutes.
Meanwhile, heat oil in 12-inch skillet over medium heat until shimmering. Add onion and cook, stirring frequently, until softened, about 5 minutes. Add beets, carrots, and ½ teaspoon salt and cook, stirring frequently, until softened, 3 to 5 minutes. Stir in tomato paste (mixture will be thick) and cook until fragrant and tomato paste is slightly darkened in color, 1 to 2 minutes. Slowly add reserved broth, scraping bottom of pan to loosen any browned bits.
Add beet mixture to Dutch oven and stir gently to combine. Cover and simmer for 5 minutes. Stir in pork, dill, lemon juice, and remaining ½ teaspoon salt. Season with salt, pepper, and lemon juice to taste. Portion borscht into bowls and garnish each serving with more dill. Serve. (Borscht can be refrigerated for up to 3 days or frozen for up to 4 months.)
