Group seleciton indeed. Although I'm talking about both biological and cultural evolution working together, and in such a context, group selection is plausible (not that it's entirely implausible in biological evolution).
See Haidt & Kesebir (2009) for an overview of group selection in this context.
In short, it's not all about altruism but about group cohesion, and promoting group cohesion doesn't need to come at the same cost that accompanies altruism.
I'm very sympathetic to Greene's views. In fact, I'm mid way through a philosophy PhD on evolution and morality myself (more at http://ockhamsbeard.wordpress.com/). However, I'd never read Greene's entire dissertation - so thanks for the link.
On his views, there's one point I'd like to raise. The reason why "people tend to believe that moral judgments are produced by reasoning even though this is not the case" goes back to the evolutionary roots of our moral intuitions.
Assuming that morality has evolved to encourage pro-social behaviour, it’s plausible that this feeling of objectivity has been selected for in order to encourage the spread of pro-social norms.
If, for example, moral judgements felt emotionally neutral, contingent and subjective – like a preference for chocolate over strawberry – we might be less inclined to voice approval or disapproval of others’ behaviour if it contravened our moral inclinations.
However, if it felt as though our moral inclinations were universal and categorical, we might be more inclined to judge others’ behaviour more strictly, making vocal proclamations of approval/disapproval and encouraging others to conform to the moral norms we held. This makes moral norms more ‘sticky’ than non-moral preferences, and helps them propagate amongst the community, thus improving group cohesion.
If this is true, the it only further undermines moral realism and moral rationalism.