Melt the butter in a large saucepan over medium heat. Whisk in the flour and whip up a roux, whisking until it turns blonde, for about 5 minutes.
Add the onions and garlic, lower the heat, and continue cooking and stirring until the onions are soft.
Slowly whisk in the milk. Bring to a boil, then immediately reduce the heat to low. Let the sauce simmer, stirring occasionally, until it’s thick enough to coat the back of a spoon, for about 30 minutes.
Remove the pan from the heat and stir in the horseradish, salt and pepper. Cover the saucepan with plastic wrap and let cool.
Preheat the oven to 450 degrees. Salt and pepper the oysters and place them in a baking dish in a single layer. Pour the cooled sauce evenly over the oysters.
In another bowl, mix the breadcrumbs, Parmesan, olive oil and pepper flakes until the oil moistens the breadcrumbs. Sprinkle over the oysters and sauce in the baking dish.
Bake 15 minutes or until topping turns golden brown.