It's due to a difference in permissions.
When you are looking from the computer, you are accessing the phone over ADB or MTP, which is likely running with special privileges, such as 'shell' or 'root'. When you are looking from the app on the phone, you are running as a certain Android 'userId' and 'appId' in a sandbox which does not necessarily have access to other user's files or many system files. In fact, Android 4.2 and later uses file namespaces and bind mounts to make other user's files completely invisible (not even mounted) when another user is logged in. Even a root file explorer will not see unmounted files.
The only way to see all system files is to be running as root. The only way to see all of a particular user's files on external storage is to be logged in as that user, thus forcing the system to mount the appropriate external storage folders.