Preheat your oven to 325°F (165°C).
Pat the lamb shanks completely dry with paper towels. Season them generously on all sides with kosher salt and black pepper. Lightly dredge each shank in flour, tapping off any excess.
In a large Dutch oven over medium-high heat, heat the olive oil and butter. Once the butter is foaming, carefully sear the lamb shanks on all sides until deeply browned, about 8-10 minutes total. Remove the shanks and set them aside on a plate.
Reduce the heat to medium. Add the chopped onion, carrots, and celery to the pot. Sauté for 6-8 minutes, stirring occasionally, until softened and lightly caramelized.
Add the chopped garlic and cook for 1 minute until fragrant. Stir in the tomato paste and cook for another 2 minutes to deepen its flavor.
Pour in the red wine to deglaze the pot, using a wooden spoon to scrape up any browned bits from the bottom. Simmer until the wine has reduced by about half.
Pour in the beef or lamb broth. Add the fresh thyme, rosemary, and bay leaf. Stir to combine and bring the liquid to a gentle simmer.
Return the seared lamb shanks to the pot, nestling them into the liquid. The liquid should come about two-thirds of the way up the shanks.
Cover the pot with a tight-fitting lid and transfer to the preheated oven. Braise for 2.5 to 3.5 hours, turning the shanks once halfway through, until the meat is exceptionally tender and pulls away from the bone.
Carefully remove the tender lamb shanks from the pot and place them on a platter. Cover with foil to keep warm.
Strain the braising liquid through a fine-mesh sieve into a clean saucepan, pressing on the vegetables to extract all the liquid. Discard the solids.
Skim any excess fat from the surface of the strained liquid. Bring the sauce to a simmer over medium heat and let it reduce for 10-15 minutes, or until it has thickened enough to coat the back of a spoon.
Taste the finished sauce and adjust seasoning with salt and pepper if needed. Pour the sauce over the lamb shanks and serve immediately.