This devaluation of Skywards miles occurred about a year ago.
What basically happened is that all mileage requirements went up, but those for legs originating from or ending in Dubai went up much more than what I call ‘through’ upgrades, upgrades for trips between two outstations. The effect is what you are seeing: a single leg upgrade can be almost as much (and in your case as much) as an upgrade for a singe leg of the same trip. This is actually similar to paid tickets where the fare to Dubai can be (almost) the same as the fare to a destination beyond Dubai. The only way around it is try to get the entire trip upgraded. This can be tricky as very often only one leg will be available. What I do in that case, is take the available upgrade and ‘hunt’ for the other leg by setting an alert and or phoning the call centre regularly. You need to do the upgrade of the other leg manually though the call centre and ask them to combine the upgrades (this is possible although not all agents seem to know this / know how to do it). If you use the website to upgrade the other leg yourself, you will be charged the full mileage rate for each leg and the call centre can NOT undo this!
And no, the mileage rate at the airport is not lower than via the website or call centre, it is the same.