Уметь is used with skills. Flying is a learnt skill even if you are a bird. Of course, with such an unfair skill, it works both ways: you may focus on the dogs', as a species, inability to fly ("не умеют")—or say that it is impossible for dogs to fly ("не могут", "не способны").
You can also say "Dogs do not fly" (Собаки не летают).
Yep. In that case it would not even be a joke.
The sentence's premise is obvious, of course, so it is not something you'll hear often. However, you might imagine a situation when being a bit sarcastic about dogs' lack of flying skills makes sense to mention. For example, if your friend decides to erect an overtly tall fence so that his dog does not run away from his backyard without anyone noticing.
While Schady_arc is correct that even birds need to learn to fly, nobody thinks about that while saying "Собаки не умеют летать." You can just say that and it wouldn't sound unnatural. The same would be with "Собаки не умеют разговаривать" etc.
Although "Собаки не могут/неспособны летать" и "Собаки не летают" would be more semantically correct.
It is natural that native speakers have an intuitive understanding of which words work well together.
What I meant is that there are certain criteria that should be met when we use «уметь» with the name of some action. The easiest metaphor here is that of "skill", a grasp of how doing certain actions correctly and in the correct order lets you perform well in some activity (still, you have to possess the "equipment", too). For example, if your dog has both its hind legs severely damaged, you can say "My dog cannot run" in English but you cannot say "Моя собака не умеет бегать" in Russian.
Why can't I ? :) Luckily, I can say almost anything in Russian.
But seriously, I would use that phrase on some occasions.
On the other hand, there are some situations where we won't use "не умеет" while having the same pretext (is unable to).
When there is a certain condition: "he can't (is unable to) breathe" or "he is unable to tell red from green" In both cases we'll only use "не может". Well, obviously, you know that, but anyway.
As for the original phrase, I thought that most cases when one will hear "слоны не умеют играть на трубе"/"собаки не умеют летать" is when one talks to a child. And there almost everything goes.