Preheat the oven to 300 degrees. Trim most of the external fat from the lamb shanks. Generously season with salt and pepper.
Heat the oil in a Dutch oven or wide pot over medium-high heat. Working in batches so as not to crowd the pot, thoroughly brown the shanks on all sides, about 10 to 15 minutes. Remove the shanks to a plate.
Add the onions and garlic to the pot and cook, stirring often, until softened, about 5 minutes. Stir in the stock, wine, orange zest and juice, carrots and the fresh herbs.
Return the shanks to the pot and bring to a boil over high heat for about 3 minutes. Cover and then transfer the pot to the oven and cook until the meat shreds easily, about 1 hour 45 minutes to 2 hours. Remove the pot from the oven.
Set the shanks on a platter and remove and discard the sprigs of herbs. Set the pot over high heat and bring to a gentle boil, skimming off any of the fat that rises to the surface, and reduce the sauce a little, about 3 to 5 minutes. Shred the meat from the bone and serve with the sauce.