Preheat and prep: Heat your oven to 425°F (220°C). Lightly grease a 9x13-inch baking dish.
Roast the cauliflower: Toss the florets with 2 tablespoons olive oil, 1/2 teaspoon salt, and the black pepper.
Spread on a sheet pan and roast for 20–25 minutes, stirring once, until edges are golden and tender. Lower oven to 375°F (190°C).
Sauté aromatics: In a large skillet over medium heat, melt the butter. Add the onion and a pinch of salt.
Cook 4–5 minutes until soft and translucent. Stir in the garlic and cook 30 seconds until fragrant.
Make the creamy base: Reduce heat to low. Add cream cheese and stir until mostly melted and smooth.
Whisk in Greek yogurt, milk, Dijon, and crushed red pepper. Simmer gently 1–2 minutes until glossy and slightly thickened. Do not boil.
Add cheeses: Stir in mozzarella and 1/2 cup Parmesan until melted.
Taste and season with the remaining 1/2 teaspoon salt as needed.
Prep greens and artichokes: Squeeze thawed spinach in a clean towel to remove excess water. Chop artichoke hearts into bite-size pieces. Pat dry with paper towels to reduce moisture.
Combine: Add roasted cauliflower, spinach, and artichokes to the skillet.
Fold gently to coat everything in the sauce. If using lemon zest, stir it in now.
Assemble: Transfer mixture to the prepared baking dish. In a small bowl, mix panko with a drizzle of olive oil and a pinch of salt until crumbs are lightly moistened.
Sprinkle over the top, then add a little extra Parmesan.
Bake: Bake at 375°F for 18–22 minutes, until bubbling around the edges and the top is golden.
Rest and serve: Let the casserole rest 10 minutes before scooping. This helps it set and stay creamy, not runny.