Fish never got into the match as the Swiss Wimbledon and Australian Open champion broke the tall American three times in the first set and once in the second to extend his winning streak on grass to 17 matches.
Federer, 22, wowed the spectators with a string of thumping passing shots, emphatic volleys and delicate drop shots, sending a warning to rivals hoping to take his Wimbledon crown when the grasscourt grand slam begins on June 21.
Federer had beaten Fish in all three of their previous matches, although Fish was the only player to take a set off Federer at Wimbledon last year.