I’m afraid I can’t speak for everyone, anonymous, but I do know that there are a few popular reasons.
First and foremost, calling a pokémon by its species name discourages some trainers from catching more than one. You can’t very well keep multiple raticate and call them all raticate, after all.
Second—and sometimes in addition to the first—other trainers view giving pokémon names as being equivalent to treating them like pets. Obviously, not everyone shares this viewpoint (either because they don’t feel that a nickname reduces a pokémon to being a pet or because pokémon are pets for some people), but to the trainers who fall under this school of thought, naming something not only marks that pokémon as property but also implies that the pokémon is not sentient enough to choose a name for itself.
Third (or perhaps an extension of the second), some people believe that pokémon are perfectly capable of choosing their own names—and, in fact, have in their own languages—but they prefer for us to refer to them by their species name, rather than their true names. This seems to be the case with some psychic-types and humanoid pokémon.
Fourth and finally, some trainers are fully aware of the fact that they’re not particularly good at naming things.
As for myself, I choose not to name my pokémon because I agree with the third school of thought. Out of respect to them, I’ve chosen to allow them to name themselves, and they’ve opted to stick with their species names.
I’m hesitant to tell you this, but from what your kadabra has told my sister’s claydol, it’s because they believe you’re in the fourth category of trainer. —LH
They think I’m terrible at naming things? What would give them that idea? —Bill
Considering the fact that you live in a cottage by the sea called the Sea Cottage, you’ve invented a machine that teleports things that you call the teleporter, and your first major invention was a means to store pokémon digitally that you call the storage system, I haven’t the faintest idea. —LH