I think it comes down to a few design decisions like not standardizing on a VM based language with GC (like Java/.NET) which leads to more memory consumption.
Only allowing a single browser engine will also keep memory usage lower on iOS.
Apple was also early with a good memory compression implementation.
Of course, nothing will help you if you really want to run horrible applications, but at least the base system is optimized. You can run quite a lot of workloads even on an 8Gb Mac.