Begin by rinsing the broccoli thoroughly and dividing it into small florets. Bring a large pot of salted water to a boil, and blanch the broccoli for 2–3 minutes until just tender but still vibrant and firm. Drain and set aside.
Peel and finely chop the onion and garlic. In a medium saucepan, melt the butter over low heat. Add the onion and garlic and sauté gently until softened and translucent.
Stir in the flour and cook for 1 minute, stirring constantly to form a roux. Slowly pour in the milk, whisking continuously to prevent lumps. Let the sauce simmer gently for about 5 minutes, stirring often, until it thickens to a creamy consistency. Season generously with salt, freshly ground black pepper, and a pinch of nutmeg.
Preheat the oven to 350°F (175°C). Transfer the blanched broccoli into a greased baking dish. Pour the warm béchamel sauce evenly over the broccoli.
Arrange the mozzarella slices on top, covering the surface. Finish by sprinkling the grated Parmesan over the mozzarella.
Bake the casserole in the preheated oven for 25 to 30 minutes, or until the top is golden brown and bubbling. Serve hot, straight from the oven.