Preheat the oven to 350 degrees F (175 degrees C). Grease a 9x13 inch baking dish.
Heat the oil in a skillet over medium heat. Add the onions; cook and stir until tender, 5 to 10 minutes.
Place the potatoes in a separate saucepan and fill with enough water to cover. Bring to a boil, then cook over medium heat until tender enough to pierce with a fork. Drain and transfer potatoes to the prepared baking dish.
Add the onions, salmon, haddock, and smoked salmon to the baking dish, tossing to mix.
In the same skillet that the onions were cooked in, melt the butter over medium heat. Stir in flour so there are no lumps. Cook and stir for a few minutes, then gradually stir in the milk. Simmer, stirring frequently, until the sauce begins to thicken. Season with nutmeg, salt, and pepper; remove from the heat. Stir in most of the Cheddar cheese until melted, reserving some to sprinkle over the top of the casserole. Pour the sauce over the contents of the baking dish, and sprinkle with the remaining Cheddar cheese.
Bake in preheated oven until the salmon is cooked through and the cheese on top is toasted, about 30 minutes.