Generously season the pork shoulder with salt on all sides.
Heat the olive oil in a large Dutch oven over medium-high heat. Add the pork shoulder and sear on all sides until it develops a golden-brown crust, about 3-4 minutes per side. Transfer to a plate and set aside.
Drain the grease from the Dutch oven but leave any brown bits on the bottom of the pot. Melt the butter in the pot over medium-low heat. Add the garlic and sage and cook until fragrant, about 2 minutes.
Pour in a splash of milk and use your spatula to scrape up any brown bits on the bottom of the pot. Return the pork to the pot.
Add the remaining milk, bay leaves and lemon zest. The amount of milk will vary. There should be 1-2 inches of pork visible above the liquid. Add more milk as necessary to maintain this level.
Bring the mixture to a simmer. Cover the pot, leaving the lid slightly ajar. Adjust the heat to keep the liquid at a light simmer. Scrape the bottom of the pot and turn the meat every 30 minutes to prevent any burning. Add milk as necessary. Cook for 3 hours or until tender.
Transfer the pork to a cutting board and slice or shred. Skim excess fat from the surface of the sauce. There will be quite a bit! Adjust the salt to taste and spoon the sauce over the pork.