One explanation would be a memory limit, but I doubt you placed one on the VM.
This most likely happens simply because your Linux Guest OS hasn't touched these memory pages yet. ESXi only allocates physical memory pages if the Guest actively touches these pages. Windows for example, zeros all memory during bootup and thus usually appears to "consume" all memory assigned.
Once your Linux Guest touches the remaining memory, it will show pretty much all memory as "consumed" as well. (copy a large file within the Guest which will fill the filesystem read cache buffer)
It really will depend on what the VM is doing and the ESXi host is doing to conserve physical RAM - the ESXi host uses Transparent Page Sharing (TPS) to help economize on memory - this technology allows the ESXi host when it recognizes identical pages being store by VMs it will only store the page once in ROM and when the VM needs to change that page it will copy it to its own page - so you can see if your VM is taking advantage of TPS - it might be showing 2 GB of memory in use but only consuming 1.1 GB of memory in the ESXi host -
If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful