It's likely because Garchomp has that ground typing. Let's look at our ground types that can learn fly.
- Golurk
- Vibrava
- Flygon
- Arceus-Ground
- Landorus/Landorus Therian forme.
Now let's look at the features.
Golurk is a machine type Pokemon. It's literally called the "Automaton" Pokemon. In the SM anime, Hapu flies around on her golurk. This is likely why it can fly.
Vibrava and Flygon are fairly self-explanatory, since they both literally have wings.
Arceus-ground is literally the god of Pokemon :P
Landorus and Therian Landorus both have that flying type on them, so of course they can fly.
The only thing that gets me, is Gliscor. It can't learn fly. This might just be because of the fact that its name is GLISCOR. Glide Scorpion. It glides, not flies.
Garchomp seems like it'd glide too. The wings are probably not strong enough to allow it to fly easily. In SM Ultra legends though, it flies easily with ash on it's back, so that confuses me a lot.
Garchomp must be able to fly for a short period of time if it tries, but likely not use fly, since that takes the Pokemon extremely high up. What do you guys think?