This is a question on Reddit and there is a good answer for it.
First of all, one of the keys to making a movie successful is creating characters that the audience can relate to, identify with or at least root for. Sometimes they do that by casting someone the audience already knows and likes (Clint Eastwood, the Rock, Arnold Schwarzenegger, etc.).
However, another way to do this is to take the likable, good-hearted, ordinary guy and have him compete with the overbearing, a-hole jock for a terrific woman who’s starting to realize Fratty McFratboy is bad for her.
This dovetails with the sort of fairy tale mentality we have pumped into us from the time that we’re young by comics and children’s stories. This mentality says the good guys always win and virtue is its own reward.
Trending: Should a Man Ever Date a Single Mother?
So in the movie, “Chad” may seem to be more desirable, better looking, the hero of the football team, but given time, the woman sees through all of this and realizes that the ordinary guy has a wonderful heart! So, he wins!
The men like this fiction because almost everyone thinks he’s the good guy. The women like it because they love to believe they’d take character and good traits over shallower traits like money, muscles and cockiness. Plus, the ordinary guy character is written to be a lovable underdog while the guy on top is written to be a jerk. So, everything lines up perfectly.
Meanwhile, back in the real world when people are making actual decisions that impact their lives, things like looks, status and money trump character for women and everyone, including men, want the best deal they can get.