…damnit; I was hoping no-one would ask that.
Okay. So. What the hell is a type, anyway? This is… tricky. Let’s look at a couple of Flying-types to illustrate some of the problems here. Dodrio is a Flying Pokémon because he has birdlike physiology, even though he can’t actually fly, while Drifblim is a Flying Pokémon because he can fly, despite having nothing in common with Dodrio, physiologically speaking. They share the properties we associate with the Flying type, though – weaknesses to cold and electrical damage, for example. What this suggests is that types are actually just a set of categories created and defined by humans, and used to describe the sets of strengths and vulnerabilities Pokémon possess in battle. That is, Dodrio and Drifblim are both considered Flying-types because they have those common strengths and vulnerabilities – even though they have them for completely different reasons. What’s a little awkward about this is that the system is so perfect. With few exceptions – namely, those Pokémon with abilities like Levitate and Thick Fat that alter their defensive capabilities with respect to specific elements – the strengths and weaknesses of all the Pokémon that are known to exist fit perfectly into the type system. It is possible, for instance, to make complicated predictive statements like “any Pokémon that resists both Lava Plume and Dragon Rush will cease to resit one or both of them after exposed to either Gastro Acid or Worry Seed.” With our privileged out-of-universe knowledge, we can predict with quite a high degree of confidence that a statement like this will always be true, even though there may be many Pokémon in the universe that we don’t know about yet. What this suggests is that type is (or describes) real properties which can be objectively measured, and which are common to all Pokémon of a given type.
So which is it?
I think we can probably agree that a shared type does not necessarily imply shared ancestry – that is, there is no ‘common ancestor’ of all Dark Pokémon, for instance; Absol and Mandibuzz are more closely related to other Pokémon in the Field and Flying egg groups, respectively, than they are to each other. Eevee, I think, has to be the clincher to this, since she demonstrates conclusively that there can be a Fire Pokémon (Flareon) who is much more closely related to a Water Pokémon (Vaporeon) than to any other Fire-type. It follows, therefore, that any traits which members of a single type have in common are the result of convergent evolution (like bats, birds and butterflies, they have physiological traits or abilities that are outwardly similar and serve common purposes, but actually function differently at their most basic level). This is less true for some types than for others – for instance, Bug, Dragon, Flying and Grass all map quite closely onto corresponding egg groups, so one imagines that for many of them, their shared traits actually do indicate shared ancestry, but these types are exceptions (as is proven by the outliers within those types, like Flygon, who is a Dragon Pokémon, but is a member of the Bug egg group and not the Dragon egg group). This seems to provide more support to the idea that ‘type’ is actually a human idea used purely to describe the way a Pokémon fights.
I am rather inclined, at this point, to suggest that type is a human construct that doesn’t necessarily have any impact on the way Pokémon live their lives in the wild but is a useful way of simplifying the complex web of interactions between various powers and abilities that make one Pokémon more effective against another but less effective against a third. That still leaves us with the question of why Dodrio and Drifblim share so many apparent tactical strengths and vulnerabilities when they seem to have nothing in common, and for that I have only the unconvincing answer of “coincidence.” In the case of the more supernatural elements, like Psychic and Ghost, you could easily argue that two Pokémon from the same type have independently evolved to draw power from a common source, and that the nature of these sources inherently renders attacks and protections drawing upon one of them more or less effective against those that draw upon another. This works as a general explanation to the extent that all Pokémon are in some sense magical (I think you would be hard-pressed to find one that has no access to any supernatural powers at all) however it seems awfully like simply giving up on the question, and it is besides much less convincing for the more mundane types, especially Normal, which is defined mainly by its lack of any unifying characteristics. At present, though, I’m afraid I’m unable to give any fuller answer.