Lavez soigneusement les courgettes et, à l'aide d'une mandoline ou d'un couteau bien aiguisé, tranchez-les finement dans le sens de la longueur (environ 3-4 mm d'épaisseur). Disposez les tranches sur du papier absorbant et saupoudrez-les légèrement de sel pour qu'elles rendent leur eau. Laissez reposer 15 minutes avant d'éponger l'excès d'eau avec du papier absorbant.
Pendant que vos courgettes dégorgeant, découpez le saumon en petits morceaux. Dans une poêle à feu moyen, faites revenir les échalotes et l'ail dans une cuillère à soupe d'huile d'olive jusqu'à ce qu'ils deviennent translucides. Ajoutez le saumon, salez légèrement, poivrez et cuisez 2-3 minutes seulement. Incorporez le jus de citron, retirez du feu et réservez.
Dans une casserole à fond épais, faites fondre le beurre à feu moyen. Ajoutez la farine et remuez vigoureusement pendant 1-2 minutes pour obtenir un roux homogène. Versez progressivement le lait tiède tout en fouettant constamment pour éviter les grumeaux. Continuez la cuisson pendant 5-7 minutes jusqu'à ce que la sauce épaississe suffisamment. Assaisonnez de sel, poivre et muscade.
Préchauffez votre four à 180°C. Dans un plat à gratin légèrement huilé, disposez une première couche de tranches de courgettes qui se chevauchent légèrement. Étalez la moitié du mélange au saumon, puis versez un tiers de la béchamel. Saupoudrez d'un peu de parmesan et d'aneth.
Répétez l'opération: courgettes, reste du saumon, un autre tiers de béchamel, parmesan et aneth. Terminez par une dernière couche de courgettes, nappez avec le reste de béchamel, parsemez de zeste de citron et du reste de parmesan.
Couvrez le plat de papier aluminium et enfournez pour 25 minutes. Retirez ensuite le papier aluminium et poursuivez la cuisson pendant 10 minutes supplémentaires jusqu'à ce que le dessus soit légèrement doré. Pour un gratiné plus prononcé, passez le plat sous le gril pendant les 2 dernières minutes.