But Golurk is based on mechs. They fly! Garchomp is a shark.
Which doesn't explain why it should learn it by naturally at all, when there's birds that don't learn it. I'd say that birds kinda fly a bit more natural than a suit of armor. There's a bunch of other pokémon that fly that can't learn Fly (bug usually), if a Pidgey can carry you around, Butterfree can't? Fly is seriously broken when it comes to logic.
Or generally just drop HMs altogether. They are by far a outdated game mechanic that doesn't really add to the gameplay. At the very least phasing them out.