Simple. People like to moralize according to their lifestyle decisions. Most people don't smoke in America, while there is a large obesity problem in America, and many Americans are fat. Since most people don't smoke and smoking is bad for you, smoking becomes evil. Likewise, since so many Americans are fat, this effect does not happen to that degree.
It's the same reason why being gay used to mean that you were an evil person whereas nowadays it's lessened up a bit in that respect because there are more open gay people. Like, if you had a close, best friend, and then he came out of the closet, chances are you wouldn't automatically think he was a bad person, but would instead rationalize that being gay must be alright because he's a good person in your eyes. Combined with the fact that being gay does no harm whatsoever, it makes sense why the hate for the gay community has decreased in recent years.
It's the same reason why being gay used to mean that you were an evil person whereas nowadays it's lessened up a bit in that respect because there are more open gay people. Like, if you had a close, best friend, and then he came out of the closet, chances are you wouldn't automatically think he was a bad person, but would instead rationalize that being gay must be alright because he's a good person in your eyes. Combined with the fact that being gay does no harm whatsoever, it makes sense why the hate for the gay community has decreased in recent years.