Remove roast from refrigerator 1 hour before cooking to allow it to come to room temperature.
Preheat oven to 325 degrees F (165 degrees C).
Rub salt and black pepper over the surface of the roast. Heat 2 tablespoons oil in a Dutch oven over medium heat. Add onions and fennel; cook and stir for 5 minutes. Add garlic; cook 1 minute more. Remove onion mixture from Dutch oven.
Pour remaining 2 tablespoons oil into the Dutch oven over medium heat. Add roast; brown on all sides, about 10 minutes. Remove roast and return onion mixture to Dutch oven. Place roast on top and cover the Dutch oven.
Bake in the preheated oven until fork tender, 2 to 3 hours.
Remove roast from Dutch oven. Puree half the onion-fennel mixture in a food processor.
Melt butter in a skillet over medium heat; add flour and black pepper. Cook and stir until browned, 2 to 3 minutes. Whisk 1/2 cup beef stock and the onion-fennel puree into flour; add remaining 1/2 cup stock. Simmer until thickened, 3 to 5 minutes. Mince reserved fennel fronds and add to gravy; season to taste with additional salt and pepper.
Place roast on a platter; top with remaining onion-fennel mixture and half the gravy. Serve with remaining gravy on the side.