Set a rack in the lower third of the oven and heat to 150 C / 300 F. Pat the veal completely dry, tie it with kitchen twine at 3 cm intervals, and season all over with the salt and pepper. Leave it on the counter while the oven heats and you cut the vegetables.
Heat the olive oil and butter in a 26 cm / 10-inch Dutch oven over medium-high heat until the butter foams. Sear the veal for about 2 minutes per side, turning with tongs, until deep golden all over, about 8 minutes total. Move it to a plate.
Lower the heat to medium. Add the onion, carrots, celery and garlic and cook for 4 minutes, stirring, until the edges take color. Pour in the wine, scrape up the browned bits with a wooden spoon, and simmer for 2 minutes until reduced by about half. Add the stock, rosemary, sage and bay leaves, then set the veal on top with any juices from the plate.
Roast uncovered for 90 minutes, basting with the pan juices every 30 minutes. Start checking at 75 minutes. The roast is done when an instant-read thermometer in the thickest part reads 145 F / 63 C, so if it's still under, return it to the oven and check every 5 minutes. If the liquid drops below 1 cm / 1/2 inch, add 60 ml water or stock.
Move the roast to a cutting board, tent loosely with foil, and rest for 15 minutes. Meanwhile, set the Dutch oven over medium heat, discard the bay leaves and herb stems, and simmer the juices and vegetables for 5 minutes, mashing the vegetables lightly into the liquid, until the sauce coats the back of a spoon. Taste and add a pinch of salt if needed.
Remove the twine and slice the veal across the grain, about 5 mm thick. Arrange the slices on a warm platter and spoon the sauce over the top. Serve right away.