Why did Hashem accept Hevel's Korban, but not Kayin's?
Rashi: Because, whereas Hevel gave of "the firstborn of his sheep and from the fattest", Kayin gave of the worst, or flax (which is a cheap commodity) or just whatever came to hand.
Seforno: Because, as the Pasuk implies, neither Kayin 1 nor his Korban was acceptable.
Moshav Zekenim #1, Rosh (verse 3): Kayin brought at the end (after he benefited). 2 Hevel did not want to benefit before bringing.
Moshav Zekenim #2: Kayin brought from the land, which was cursed.
Ohr Yechezkel Midos p.82: Because craving for money was mixed in 3 , there is a blemish in his actions, and all his attributes (he himself realized the concept of Korbanos) did not help him.
Drash Moshe (3): Even though Hashem does not need the Korban, man should feel desire to bring high quality [to honor Him]. Kayin's Korban was not a sin, but it is called Chatas, for the lack of feeling is prone to lead to sin.
Presumably, because his whole attitude conveyed the impression that he lacked Kavod Shamayim.
Also Hadar Zekenim says so.
Surely he had an excuse - it makes no difference to Hashem which Korban he brings - but the Torah teaches the outcome of lust for money. Even though all Peros of the world belonged only to him, he was stingy! This teaches the extent of Midos! (Ohr Yechezkel Midos p.20, 84)
Hashem accepted Hevel's Korban, and immediately he was killed. Where did he receive his reward?
Hadar Zekenim : This refutes those who deny the world to come. Surely he was rewarded there!
Man was not permitted to slaughter animals until No'ach. How could Hevel offer animals?
Hadar Zekenim : He brought wool. 1 The Torah forbids wool and linen together, for from them came punishment.
Perhaps man could not slaughter to eat before No'ach, but it was permitted for the sake of Korbanos! (PF)
Moshav Zekenim asked this, and did not answer. The answer we gave must explain 'ume'Chelvehen' to mean [wool] from his best sheep. Hadar Zekenim was not coming to answer this question. If he explains 'ume'Chelvehen' simply (their intestinal fat), he does not answer the question.
רש"י: ירדה אש: מנין דרשו זאת?
גור אריה: אם לא כן, כיצד ידעו שה' קיבל רק את של הבל?!
אצל קין דרשו שהביא מהגרוע ככתוב "מפרי האדמה", וקשה שגם אצל הבל כתוב "מבכורות צאנו"?
גור אריה (לעיל, פסוק ג): מאחר שהידר להביא מהבכורות, צריך לפרש "מבכורות צאנו" מעידי עידית שבהם.
למה כתוב מילת "גם"?
גור אריה (לעיל, פסוק ג): ללמדך שכשם שקין הביא קרבן להרחיק את הבל, כך הבל הביא קרבן כדי להרחיק את קין, ולכן לא שמרה עליו המצוה.