Slit the skin around the veal shanks in 2 or 3 places so that slices do not curl when cooked. Dust veal shanks with flour.
Heat butter and olive oil in a large skillet over medium heat. Add onion and carrot; cook and stir until softened, about 5 minutes. Add veal shanks; cook until browned, 3 to 5 minutes per side. Pour in white wine and simmer until reduced, about 5 minutes.
Stir tomato puree, salt, and pepper into the skillet. Pour in beef stock gradually, stirring between each addition. Reduce heat to medium-low, cover, and cook, turning veal shanks occasionally, until tender, about 55 minutes.
Mix parsley and lemon zest together in a small bowl. Stir into the skillet. Cook until flavors combine, about 5 minutes.