Глаголы earn, gain и win имеют общее значение — получить, завоевать что-либо.
К примеру, если речь идёт о завоевании чьего-го доверия, уважения или получения чьей-то поддержки, можно использовать любой из трёх глаголов:
to earn/gain/win someone’s trust (respest, support)
Однако, когда мы говорим о деньгах, все происходит совершенно иначе.
Earn употребляется, когда речь идёт о зарабатывании денег (то есть вы прикладываете усилия для того, чтобы получить деньги):
By 2007, she had earned over $10 million from the book. — К 2007 году она заработала на книге более 10 миллионов долларов.
What do you hope to earn by giving lessons as a freelance? — Сколько вы надеетесь заработать частными уроками?
Также когда речь идёт о получении прибыли:
So far, the movie has earned $5 million. — На данный момент фильм заработал 5 миллионов долларов.
Глагол gain означает «приобретать», поэтому не всегда подразумевает какую-то серьёзную работу для получения дохода:
They defeated the villagers to gain their money. — Они защитили жителей деревни, чтобы получить их деньги.
Gain часто используется в значении «набирать», например, когда говорится о наборе веса:
I gained 20 pounds. — Я набрала 9 килограмм.
Или о популярности:
In a short period of time the group gained popularity in Russia and gave numerous concerts. — За короткий период времени группа приобрела популярность в России и дала многочисленные концерты.
Win не употребляется, когда речь идёт о зарплате или доходах. Но он нужен, когда мы говорим о выигрышах:
I just won the lottery for sixty million. — Я выиграл в лотерею 60 миллионов долларов.
Когда говорится о получении контракта, в таких случаях мы тоже используем win.
China won the contract to mine for gold up there. — Китайцы получили там контракт на добычу золота.