In the end, any dog can be taught to fetch. Same as you can teach any dog to sit or lay down or any easy obedience trick. Difference is how natural it is; do they have a drive run after moving object for one and do they like to take things to their mouth. Dogs like herders, terriers, sighthounds have very high drive to run and catch something they see moving. Many sighthounds then again don't like to carry things so they don't like to fetch so much. But often dogs who have that drive (terriers, herders) love to chase balls or sticks and soon figure out that they will have a ball thrown again, if they bring it back. If you are training them to do it really and reliably (in obedience training or when training a retriever to be a hunting dog) you work on it slightly different way. And with those techniques you can teach any dog to fetch (even those local hound breeds I mentioned, who really don't naturally do it.)
When bird dog fetches birds, it is little more complicated. Their drive is not solely, or even most part, running after a moving object. Retrievers simply love to carry things and they also have high drive for game (if we are talking about real retrievers, not about the couch potatoes most goldens and labradors have been changed during last few decades. There are still intact hunting lines in those too, though.) It's just little bit different and their passion for hunting makes them much more patient workers when trying to find a bird than for example a german shepherd who also tend to love fetching, but who are driven by the sight of moving target instead of scent of the game itself.