In a shallow bowl, whisk together the lemon juice and minced garlic. Add the haddock and turn to coat all sides. Allow it to sit at room temperature for 20 minutes. (see note #1)
Meanwhile, preheat the grill to medium-high heat. It should be around 400 degrees F.
Remove the haddock fillets from the marinade and gently dry them on paper towels. Discard the leftover marinade. (see note #2)
Using paper towels held by tongs or a heat-resistant pastry brush, lightly grease the grill with canola oil. (see note #3)
Place the haddock fillets on the grill and cook for 5 minutes. Flip and cook another 4 minutes or until the internal temperature reaches 145 degrees F.
While the fish is grilling, melt the butter over medium-high heat. Add the flour and whisk constantly for 1 minute.
Reduce the heat to medium and slowly whisk in the half and half whisking as you pour. Add the salt and pepper. Gently simmer for 2 minutes whisking occasionally.
Turn off the heat and mix in the lemon juice, lemon zest, and dill.
Serve immediately.
Notes
I don't add salt to the marinade since the haddock I buy tends to be a bit salty naturally. If your haddock is not salty, you can add 1/4 teaspoon to the marinade.
Don't over-marinade the fish. If you let it sit in the lemon juice too long it will start to cook.
If you are concerned with sticking, you can place lemon slices or a sheet of foil under the fish on the grill. However, the haddock won't have the grill marks it gets when grilled directly on the grates.