From what I've seen/read players with a lower skill level in defensive abilities like OD, ID and SB are therefore more likely to foul against good offensive players they're guarding as they don't have the skill to guard them properly.
I've also read that players have a hidden "aggression" value causing some players just to naturally foul more, not sure if that's confirmed, but it can be something to look for when buying new players by checking their foul average.