First, you have to make a difference between launch and resume.
But yes, both are fairly slow on Windows Phone.
That's because of the programming language (C#) and compiler that are used on WP.
I don't think it makes sense to explain the exact reasons for this ('cause it's complicated :O), but it just takes some time to get all things ready in an app when you launch. Independent of what's in the app. It's not the case for iOS, therefore it's that fast.
For sure you also have to consider the app itself, and how "well" it is programmed to guarantee a fast startup.
Apps also have to be programmed that way so they can be "fast resumed". Well, it's not that fast ;-) At least not on the lower end phones like your 520.
When you leave an app and do other things it is - let's say - "sleeping". When you resume it (manually), it can either be resumed (programmatically) by the operating system or launched. That depends on how much time has passed since then, how many programs you have currently open and how many RAM your phone has.
I have a 520 as a testing device myself, and I can tell you, sleeping apps get "thrown away" really fast (so they can't be resumed anymore), and therefore they have to be fully launched again, which takes a lot of time.
You also have to know that apps have to do some work themselves (sometimes) when they get resumed, as some of the data, which was in the RAM before just gets trashed.
To sum it up: It's ****