I've heard both of the following suggested:
1. God wanted an animal. Cain didn't have any because he farmed the ground, not livestock. He was too proud to ask Abel for one, and thought "I'll do it my way, God will accept that."
2. God wanted the best of what they had. Abel brought "of the firstlings of is flock and of their fat portions". Cain simply brought "an offering...of the fruit of the ground". Abel gave the best he had, and Cain though "Meh, that'll do."
What do you think?
The difficulty with the first option is it brings in information which isn't anyway.
The israelites were always required to give the best of what they were offering. They could offer grain offerings without blood sacrifices. Therefore the second option is the best option.