01 - Preheat the oven to 400°F. Lightly grease a 9x13-inch casserole dish with butter or cooking spray.
02 - Bring a large pot of generously salted water to a rolling boil. Add the trimmed and halved Brussels sprouts and cook 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, allowing the raw flour taste to cook off.
05 - Gradually whisk in the whole milk and heavy cream, pouring slowly to prevent lumps. Continue whisking 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 cheese sauce. Transfer the entire mixture to the prepared casserole dish, spreading into an even layer.
08 - Sprinkle the remaining ½ cup of Parmesan cheese evenly over the top. In a small bowl, toss the panko breadcrumbs with olive oil, then sprinkle the mixture over the casserole for a golden, crunchy finish.
09 - Bake uncovered for 25 to 30 minutes, or until the top is golden brown and the sauce is bubbly around the edges.
10 - Remove from the oven and let the casserole rest for 5 minutes to allow the sauce to set. Garnish with chopped fresh parsley and serve hot.