01 - Preheat oven to 400°F. Grease a 9x13-inch casserole dish with butter or non-stick spray.
02 - Bring a large pot of salted water to a rolling boil. Add trimmed and halved Brussels sprouts, cooking for 3 to 4 minutes until just tender-crisp. Drain thoroughly and set aside.
03 - In a large skillet over medium heat, melt the butter. Add the chopped onion and cook until softened and translucent, about 3 minutes. Stir in the minced garlic and cook for 30 seconds until fragrant.
04 - Sprinkle the flour over the onion and garlic mixture. Stir continuously and cook for 1 to 2 minutes to form a smooth roux, removing any raw flour taste.
05 - Gradually whisk in the whole milk and heavy cream, pouring slowly to prevent lumps. Continue whisking over medium heat until the sauce thickens and coats the back of a spoon, about 4 minutes. Stir in the Dijon mustard, salt, black pepper, and ground nutmeg.
06 - Remove the skillet from heat. Add ¾ cup of the Parmesan cheese and all of the mozzarella cheese, stirring gently until completely melted and the sauce is smooth.
07 - Add the blanched Brussels sprouts to the skillet, tossing to coat evenly in the creamy sauce. Transfer the entire mixture to the prepared 9x13-inch casserole dish, spreading into an even layer.
08 - Sprinkle the remaining ½ cup Parmesan cheese evenly over the top. In a small bowl, toss the panko breadcrumbs with olive oil and scatter over the casserole for a golden, crunchy finish.
09 - Bake in the preheated oven for 25 to 30 minutes, or until the top is deeply golden and the sauce is bubbling around the edges.
10 - Remove from the oven and let the casserole rest for 5 minutes to set. Garnish with chopped fresh parsley and serve hot.