There are a lot of reasons for that. Mainly because he was a big fan of Dortmund since he was a child, he used to be a member of Dortmund's ultras club. There is a huge rivalry between Schalke and Dortmund and he always talks $#@! about Schalke in every interview, how much he hates them and what a disgraceful club they are. That's why many people don't like him, because he shows absolutely no respect to other clubs.
Next thing, he's considered to be a racist by some people. He had a little brawl with Greuther Furth's player Gerald Asamoah in one match and he apparently racially abused Asamoah the whole time. After the winner was scored in that match in the 120th minute, Grosskreutz ran towards Asamoah and again made fun of him. In his interviews, he really comes across as a half-brained idiot, (not only because of hate towards Schalke), always very arrogant and $#@!y, so accusations like that seems to be quite legit.
Finally, he's just a mediocre player. He's considered to be as an all-arounder, who can cover multiple possitions, but in reality he's useless in all of them. As I've said before, the only reason why he is still there is probably because he's a big fan of the club and Dortmund didn't have enough time to find a good replacement for him during the winter mercato.