He is gay is a description; He is a gay is a categorisation.
He is gay simply describes one aspect of a person, and is a much more neutral statement.
He is a gay, on the other hand, assigns this person to the category of "Gay", with the inherent assumption that this person fits the norms and stereotypes of that category.
In some contexts, that kind of categorisation makes sense. He is a Christian, for example - Christians are nearly always part of a group, and self-identify as members of that group. He is a Democrat also makes sense.
On the other hand, He is a fat does not make any sense. "Fat" is a descriptive term, not the identity of a group
While many LGBT folks do tend to congregate together as a community, not all wish to be a part of it. Assigning others to groups or categories they do not chose for themselves is generally inappropriate, which is why the word "Gay" is shifting to a description, rather than a categorisation.
There's also an inherent tribalism in assigning others to this or that group, especially when the speaker is not a part of the group. It's particularly dangerous to do so on the basis of inherent characteristics that a person cannot change.