Rub 1 tablespoon olive oil over lamb shanks and cover with salt.
Mix turmeric, cinnamon, cardamom, black pepper, cumin, and nutmeg together in a small bowl. Sprinkle over lamb shanks. Let lamb shanks marinate for 1 hour at room temperature.
Heat 1 tablespoon olive oil in a large pot. Cook and stir onion until browned, 10 to 15 minutes. Stir in garlic; cook and stir until fragrant, about 1 minute. Remove from heat.
Whisk hot water, lime juice, rose water, and saffron together in a small bowl. Cover and let steep for 10 minutes.
Heat remaining 2 tablespoons olive oil in a large pot over medium-high heat. Cook lamb shanks in batches until browned, 5 to 8 minutes per batch. Transfer lamb shanks to a plate.
Whisk wine into the pot, scraping any browned bits off the bottom. Add onion and garlic mixture, steeped saffron mixture, parsley, thyme, lime zest, and bay leaves. Return lamb shanks to the pot. Cover with chicken broth. Bring to a boil; reduce heat to medium-low and simmer, covered, until lamb shanks are tender, about 2 1/2 hours.
Preheat the oven to 250 degrees F (120 degrees C).
Uncover pot and simmer until broth reduces slightly, about 20 minutes. Transfer lamb shanks to an oven-safe dish.
Place lamb shanks in the preheated oven to keep warm.
Bring broth to a boil; simmer until thickened, about 10 minutes. Spoon broth over lamb shanks.