Why is a trigram search on firstName so much faster than a trigram search on lastName?

Is my interpretation of your last sentence right, that you feel it's already as fast as one could reasonably expect it to be for a query of this type?