If I wanted to say that I moved somewhere for work [...]
... then I wouldn't have used any preposition at all:
"Я уехал (приехал, переехал) работать (жить, учиться) в Москву". See also real quotes from the Russian corpus.
But the title of this question suggests that it's a generic question about prepositions rather than about relocating, so let me not limit this answer to the context of moving for work.
In general, the use of на to indicate a reason is pretty obscure to me.
But is this in fact what it's doing here?
"На X-accusative" can hardly indicate a cause. It rather indicates goal and purpose. This meaning is most obvious if X designates either a process (working, studying, relaxing, healing, shooting a movie) or its final result (cookies, money earned). I'm not sure if that's a hard rule, it's just that I tried substituting various nouns for X, and found these collocations most natural.
- поехать на работу, на заработки, на учёбу, на отдых, на лечение, на съёмки фильма;
- уехать на постоянное жительство - to move permanently, highly formal register;
- уехать на вызов - about a doctor called to visit a patient, about police responding to some event;
- прийти на помощь, на выручку - about coming to the rescue;
- яблоки на продажу, на варенье - about apples that are meant to be sold, or to be preserved;
- тесто на пироги - about dough meant to be used for pies;
- кредит на образование - about a bank credit for college/university;
- билет на проезд в метро - about a subway ticket;
- блюдо на заказ - idiomatic, about a dish made to the custom order of someone;
- откладывать на чёрный день - idiomatic, about saving up for some unexpected emergency;
But then you should be careful, because "на" has a lot of other meanings (well, which preposition doesn't?), and subtle changes in the noun may strongly suggest another meaning, even though the phrase looks the same.
For example, if X can be interpreted as a timeframe (like summer, holidays), then preposition "на" would likely be perceived in the sense of duration:
- переехать на каникулы в деревню - to live in the country cottage during vacation;
- уйти на обеденный перерыв - arguably and depending on the context, that could be more about the timeframe of absence rather than about the goal;
Another slight ambiguity may arise if X may designate either an event or a location. I suppose that's because the concept of goal is very close to the concept of target, which means that the sense of goal can blend with the sense of destination. In this case you'd need more context to tell goal from location:
- поехать на выставку, на экскурсию, на конференцию;
- пойти на прогулку, на встречу, на собеседование - about having a lunch, a meeting, an interview;
- пойти к друзьям на обед - an extra adverbial makes this phrase more clear, because "friends" clearly indicates the location, and therefore "dinner" indicates the goal;