Morality is about being unselfish, or at least it entails that. Which makes my point that this description, based on evolution, does not do the job. It doesn't explain what it is supposedly meant to explain. It doesn't explain morality. It is simply reduced to a promotion of selfishness which isn't morality at all.
Morality is something altogether different.
We may debate about all that moral views and understandings entail, but one thing we can all agree on, I think, is that when we are looking for a definition of morality, we know it isn't about selfishness. It is about not being selfish, just the opposite. That's why these explanations don't work. They either smuggle morality into the equation by describing the behavior that is meant to be explained by evolution so they depend upon morality to do the job, or else the descriptions and explanations end up being reduced to selfishness, which isn't what we're trying to explain. We're trying to explain why one ought not be selfish, not why one ought to be selfish.