Part of the problem has to do with the internal memory of the games. Put simply, most Pokémon games will only have enough room to store 2 types per Pokémon (and now that there'll be over 700 species of PKMN in Gen 6, along with the addition of a new type, that's not likely to get much better!). Perhaps someday, once the memory capabilities of the 3DS (or future generations) cartridges improve so that it's no problem to add in a third type for each applicable PKMN, we'll have it, or it will be limited to a few PKMN with a third type.
But as for memory, I'd point you to this page. Each of those entries is specifically listed in the internal memory of the game, and that's a lot of type information, even if you don't count the ones that don't have any PKMN with those types (by clicking on the "Show All Types" button). So, the root of the problem is in the memory of each game.