Preheat and prep: Heat your oven to 400°F (200°C). Lightly grease a 9x13-inch casserole dish.
Dry and season the shrimp: Pat shrimp very dry with paper towels.
Toss with a drizzle of olive oil, a good pinch of salt, and black pepper. Set aside.
Sauté the aromatics: In a large skillet over medium heat, melt the butter. Add shallot and cook 2–3 minutes until translucent.
Stir in garlic and cook 30 seconds, just until fragrant.
Deglaze and reduce: Pour in the white wine (or broth). Scrape the pan and simmer 1–2 minutes, reducing slightly.
Make the creamy base: Lower the heat. Whisk in cream and cream cheese until smooth.
Stir in Parmesan, a pinch of red pepper flakes, and a tiny pinch of nutmeg. Simmer gently 1–2 minutes to thicken. Season with salt and pepper to taste.
Wilt the spinach: Add spinach by the handful, stirring until it softens and fits in the pan.
Cook 1–2 minutes until just wilted. Remove from heat and stir in lemon zest and juice.
Assemble the casserole: Spread the spinach-cream mixture evenly in the prepared dish. Nestle the seasoned shrimp across the top in an even layer.
Add the cheese top: Sprinkle with a little extra Parmesan and the mozzarella, if using.
Bake: Cook for 10–12 minutes, until shrimp are pink and opaque and the top is lightly golden.
Avoid overbaking.
Rest and serve: Let it rest 5 minutes. Garnish with chopped parsley. Taste and adjust with a final squeeze of lemon or pinch of salt if needed.