No gym leader gives you the HM Surf. In order to obtain this HM, you must first defeat the Fuchsia City gym leader. The badge you receive will enable you to use Surf outside of battle. Once you receive this badge, enter the Safari Zone in Fuchsia City (located north). If you are not familiar with the Safari Zone, it is an area in which you pay £500 to receive 30 Safari balls to catch wild and rare Pokemon. In the Safari Zone, there are small rest houses. You must make your way through each area of the Safari Zone. In the last house you enter, a man will explain that he has a special prize to giveaway for the first one to make it to said house. He will then give you the HM Surf.
Chat with our AI personalities
The Hearthome gym leader Fantina lets you use surf in Pokemon Diamond, Pearl and Platinum.
ieryjioet
The gym leader in the normal gym, your character's father will give it to you after you beat him.
You have to beat the pastroria gym leader in order to get the move surf.
You must: 1. Beat the 6th gym leader. 2. Go to Twist Mountain 3. Before you go in, Clay, the 5th gym leader, will give you surf.