The thing is, a "nice guy" will treat a woman with TOO much respect, with TOO much of his love (and affection), and be TOO open and honest to her about his feelings. To a woman, he is a guy that kisses her ass, is a bit too "needy", and she automatically feels above him because of it. And because of that, she will not feel any type of attraction or passion for him because she sees him as too big a wuss. THAT'S why nice guys strike out.
On the other hand, a cheating, lying, and abusing type of man isn't necessarily seen as a "bad boy" type, neither does having a felony record or owning a motorcycle. A "bad boy" type isn't scared to be open with a woman and isn't scared to voice his opinions. Most "nice guys" will say things that he thinks the woman wants to hear (opinions, points of view, nice compliments, etc...). While a "bad boy" will instead call her on her opinions, while proudly standing by his own. He will not be afraid to tease around with her, while a "nice guy" wouldn't dare because he would be afraid of somehow offending her in the process. To a woman, a "bad boy" is an alpha male, is more interesting and fun to be around, and inside her, the "challenge" that she can "change him" automatically clicks on. A "nice guy" to a woman is, basically, boring.