Preheat oven to 400°F (200°C). Lightly spray a 9x13-inch baking dish with nonstick cooking spray and set aside.
Bring a large pot of salted water to a boil. Add Brussels sprouts and cook until just fork-tender, about 4 to 5 minutes. Drain well and set aside.
In a large skillet over medium heat, melt butter. Add diced onion and cook until softened, about 3 to 4 minutes.
Stir in the garlic and crushed red pepper flakes, stirring constantly for 30 seconds.
Sprinkle flour over the onion mixture and stir constantly for 1 minute to create a roux.
Slowly whisk in the chicken broth. Continue whisking until the sauce begins to thicken slightly, about 1 to 2 minutes.
Pour in the heavy cream and continue to whisk until the mixture is smooth, creamy, and thick enough to coat the back of a spoon, about 2 to 3 minutes.
Season the sauce with salt and pepper.
Add the cooked Brussels sprouts to the skillet and gently fold them into the sauce, making sure they are evenly coated.
Transfer the Brussels sprout mixture to the prepared 9x13-inch baking dish, spreading it out evenly.
Sprinkle the Gruyère and Parmesan cheese evenly over the top.
Bake uncovered for 20 minutes.
Remove from oven and immediately sprinkle French’s crispy fried onions evenly over the top.
Return to the oven to bake for 5 more minutes.
Let the casserole sit for 5 minutes before garnishing with chopped parsley. Serve warm.