Cook's Note: The halibut can be substituted with 24 ounces of sole fillets. Reduce the cooking time in the wine mixture to 3 to 4 minutes.
Spray a 7 by 11-inch glass baking dish with cooking spray. Set aside.
For the bechamel sauce: In a 2-quart saucepan, melt the butter over medium heat. Add the flour and whisk until smooth, about 2 minutes. Gradually add the warm milk, whisking constantly to prevent lumps. Simmer over medium heat, whisking constantly, until the sauce is thick and smooth, about 10 minutes. Remove the pan from the heat and stir in the cheese, salt, pepper, and nutmeg.
For the halibut: In a large saucepan, bring the wine and water to a boil over medium-high heat. Reduce the heat to a simmer and add the halibut. Cover the pan and cook until the flesh is opaque, 8 to 10 minutes. Using a fish spatula, carefully remove the fish and arrange in a single layer in the prepared baking dish. Season with salt and pepper.
Preheat a broiler. Spoon the bechamel sauce over the fish and top with the Parmesan. Dot with butter and broil until golden, 2 to 4 minutes.