Melt the butter in a medium saucepan over medium heat. Add the onion and cook until onion is soft. Stir in the flour, salt, and pepper and cook for approximately 1 minute. Add the milk, gradually stirring all the time and cook until thickened.
Grease a 13X9" baking pan. Pour some of the cooked sauce onto the bottom of the dish. Add the haddock. Add the rest of the sauce. Top it off with the shredded cheese. Bake in preheated 350 degree oven for 25-30 minutes.