Prefacing it with the notion that categories are useless in battle, knowing that Sylveon is the Intertwining Pokemon doesn't help any user in battle, and therefore would be cosmetic information, for the most part. I don't mind it in teambuilder for that reason.
As far as dexsearch goes, those are mostly angled at covering sets of Pokemon that share a trait like "Pokemon that are weak to fire" or "Pokemon that learn a recovery move" rather than a one-one matching.
Out of the 652 categories in existence, 475 are one-one, meaning that for 475 of these if implemented, you'd receive a single Pokémon.
Apart from this, a lot of these share their names with existing parameters. For example, Drednaw is the Bite Pokemon, along with Poochyena and Mightyena. But if you implement categories, there's always the element of confusion that can stem from it. You'd have to implement a specific command in high probability like "category = " to do so.
Lastly, category names are obscure in relation to the Pokemon they represent, it doesn't make sense to make the obscure part the keyword to search. You'd rather find for: given the Pokemon - figure out what category name it has, which means it's not a suitable ds term in general.
If implemented, it's likely to cause additional clutter in the already confusing dexsearch help document, so it's counterproductive to do so.