Why does every application run as a separate user under Android? If it's for security reasons, so that one application cannot harm another, why is it not like that in the desktop Linux distros?

If desktop operating systems do prefer interaction between applications, why isn't it the same in the mobile ones? What's the difference?

What needs does a desktop Linux have that justify interaction between applications, that Android doesn't have?
Desktop and server systems have a completely different usage model, and they have system administrators to mediate access between users and applications (by setting appropriate group permissions, etc).

With Android there's no room for that kind of thing - your biggest target user base is completely non technical, and security is a must. So things default to high security - no app can fool with another's data. Further, mobile apps tend to be small, and focused on one task, so limiting them to just their own data isn't much of a hardship.