Season veal shanks with salt and pepper.
Heat olive oil in a large pot over medium heat.
Brown veal shanks on all sides, then remove and set aside.
In the same pot, add onion, carrots, and celery. Cook until softened.
Add garlic and cook for another minute.
Pour in white wine, scraping up any browned bits from the bottom.
Add diced tomatoes, beef broth, thyme, and bay leaf. Stir to combine.
Return veal shanks to the pot. Bring to a simmer.
Cover and cook on low heat for about 2 hours, until meat is tender.
Before serving, sprinkle with lemon zest and fresh parsley.