Cut slits 1/2 to 3/4 inches apart all over pork loin and push garlic into each slit. Sprinkle lemon zest, lemon juice, and rosemary over the pork. Spread 1 tablespoon olive oil over the pork. Season with salt and pepper.
Coat a roasting pan with remaining 3 tablespoons olive oil. Add potatoes, carrots, and onions. Drizzle melted butter over vegetables; stir until lightly coated.
Roast in the preheated oven until starting to soften, about 20 minutes. Remove from oven. Stir in asparagus. Place pork loin on top.
Return to oven and continue roasting until an instant-read thermometer inserted into the pork reads at least 138 degrees F (59 degrees C), about 35 minutes.
Transfer pork to a cutting board and wrap with aluminum foil.
Continue roasting vegetables until tender, 10 to 15 minutes more.
Uncover pork and slice. Serve with roasted vegetables.