Why should it be that God did not approve of Cain’s offering, while he did approve of Abel’s (Gen 4:4-5)?

As so much else in the Bible, this is left seemingly unexplained and mysterious, but in fact the reason is made quite clear by the context, both immediate and broader. There seem to be two reasons. First, the Lord could see into the mens’ souls. He presumably could see that Cain was envious, vindictive, and violent. We are told that God wants “sacrifices of righteousness” (Ps. 4:5), and that sacrifices done by vicious, faithless souls are disgusting to him (Isa. 1:10-20). We are not told in advance that Cain was such a person, but his murderous rage and lack of contrition together show what sort of man he was. He was doubtless that way before the fateful offering. By contrast, Abel’s sacrifice was acceptable no doubt first and foremost because of the state of Abel’s soul. Hebrews 11:4 says as much: “By faith Abel offered unto God a more excellent sacrifice than Cain, by which he obtained witness that he was righteous”. Similarly, Abel was described as “righteous.” (Matt. 23:35) But perhaps Abel’s sacrifice was acceptable also because he offered a blood sacrifice. Cain could have traded Abel for sacrificial animal, but deemed mere grain to be sufficient. Later, Moses was told, “For the life of the flesh is in the blood: and I have given it to you upon the altar to make an atonement for your souls: for it is the blood that maketh an atonement for the soul.” (Lev 17:11) To be sure, the same book also recounts the laws for making grain offerings—but as an accompaniment to the blood sacrifices.