I don't even have to say anything about Pikachu, it being the mascot and all.
Lucario is the representative for a gen long past back when his appearance was fresh. Makes sense to return in Ultimate ONLY because of "Everyone is here!" If it wasn't for that, we could've easily dropped him for being irrelevant.
Jigglypuff is a gag addition and should've never been included. Same with Pichu, but Pichu is even worse given Pikachu's presence. Jigglypuff is fun to play as though, I won't deny that.
Every mainline game revolves the travels of a titular Pokemon Trainer and their Pokemon. Not representing that with a fighter would've been an absolute sin. An obvious inclusion and the most fun choice in the roster.
Mewtwo can be seen as an antagonist of sorts, justifying his place here.
Greninja is the Gen 6 represent, so he was a good pick in Smash 4. Returns much like Lucario, but at least Greninja is a starter Pokemon and not some random-mon.
Incineroar is the current gen represent, so it was a good choice to include him.