From what I understand (from getting this wrong before) it is because the verb 'ganar' means 'to win' or 'to gain', whereas 'ganarse' means 'to earn'...I'm guessing that this is because when you have earned something, it is as a result of your own actions. Hopefully someone can give you a better informed answer soon, but for the time being, that's my take on it :)
According to Spanishdict.com, ganarse can mean to earn or to win, e.g.
ha sabido ganarse el afecto de todos = she has managed to win everyone's affection
In fact, on another question in this lesson, Duolingo uses "ganarse" to mean "to win": "Él se había ganado un premio" Duolingo translates as "He had won a prize."
The question then is, if ganarse can mean "to earn" and "to win", can it also mean "to gain"? Personally, I see these as splitting hairs and virtually synonymous (i.e. "to gain" is somewhere between the definition of "to win" and "to earn" in many cases), though others may disagree.
So to me, it seems not valid to say that "Ella no se había ganado nada" cannot mean "She had not gained anything", and I've reported it to Duolingo.
The hint lists all 3 options for the reflexive form:
se había ganado
(I/he/she/it/you) had gained
(I/he/she/it/you) had earned
(I/he/she/it/you) had won
If 'gained' is wrong, it should not be listed. I chose 'gained' because it's the first choice, and was marked wrong yet again (March 2015).
Something similar happened to me with another question in this lesson, for 'demostrado'. The hints listed "showed, proven, demonstrated". I chose the first one, 'shown', and was marked wrong.
DL is very confused on this - on an example two examples ago it rejected "ganarse" for "earned" and simply used "ganar" ( ie rejected SE habia ganado) but in this example it DOES use " SE habia ganado" for (had) earned.....AND in the posting above swingophelia says DL is using "ganarse" for "win"??
I had thought that "ganarse" was "earn" and "ganar" was "win/gain" but now am very confused but it looks like they are interchangeable??
SpanishDict.com gives as translation for all three - win, gain, earn as ganar. I am thinking of a situation in which someone has said sarcastically about another's behaviour, " She has not gained herself anything!" ie She has behaved like an idiot and lost her friends' regard for her... so I agree that achieve could have been used but my phrasing is perfectly normal within my circle. But I think you have supplied the answer anyway, that in Spanish you would use lograr or lograrse.
ganar means "to win" (like a game or a contest or a race, or a prize, the lottery, etc.) and also "to earn." The reflexive use means "to earn one's living" or, obviously, to earn something by the subject's own efforts. But you can use that meaing non-reflexively, too: Gana un buen sueldo. (He--or she--earns a good wage.)
If you translated, "Ella no se había ganado nada." to mean "She had earned nothing", you would be okay. But, if you said, "She had not earned nothing", I think it would probably not be a great idea to accept it because, even though it would be understood, it is normally not acceptable to say a double negative in English.
I am still not sure when ganar should be used reflexively, but there is an interesting article here https://www.thoughtco.com/how-to-use-ganar-3079801 In brief, The reflexive form ganarse usually means "to deserve" or otherwise suggests extraordinary effort. It also is frequently used to refer to those who win a lottery or drawing.