Pat the veal shanks dry with paper towels and season generously with salt and pepper.
Heat the olive oil in a large, heavy-bottomed pot or Dutch oven over medium-high heat. Working in batches if necessary, sear the veal shanks on all sides until they're golden brown, about 3-4 minutes per side. Transfer the browned shanks to a plate.
Reduce the heat to medium and add the onions, carrots, and celery to the pot. Sauté the vegetables until they're soft and fragrant, about 5-7 minutes.
Deglaze the pot with the white wine, scraping up any browned bits from the bottom of the pot. Allow the wine to simmer for 2-3 minutes.
Add the crushed tomatoes, beef or veal stock, bay leaves, and thyme sprigs to the pot. Return the seared veal shanks to the pot, making sure they're fully submerged in the liquid.
Bring the liquid to a simmer, then cover the pot and transfer it to a 325°F (165°C) oven. Braise the osso buco for 2-3 hours, or until the meat is fork-tender and practically falling off the bone.
Remove the pot from the oven and carefully transfer the veal shanks to a serving platter. Discard the bay leaves and thyme sprigs.
Stir the chopped parsley and lemon zest into the braising liquid. Taste and adjust the seasoning with salt and pepper as needed.
Spoon the sauce over the veal shanks and serve immediately, garnished with additional chopped parsley.