Mix orange juice, onion, lime juice, olive oil, garlic, brown sugar, salt, oregano, cumin, lime zest, pepper, and bay leaves in a heavy Dutch oven. Add pork shoulder; turn to coat. Cover and marinate in the refrigerator, 4 hours to overnight.
Preheat oven to 325 degrees F (165 degrees C). Remove Dutch oven from the refrigerator and cover tightly with aluminum foil.
Bake pork in the preheated oven until heated through, about 1 1/2 hours. Flip pork carefully. Replace foil and bake for 1 hour more. Remove aluminum foil. Continue baking uncovered, turning once halfway through, until pork falls apart and marinade is reduced, 1 1/2 to 2 hours.
Remove pork from oven and let rest for 20 minutes. Shred pork in the Dutch oven using 2 forks; mix shredded pork with the reduced marinade. Discard bay leaves.