Does Android hide some amount of RAM from the User? I bought a new tablet, but Android (2.3.1) shows that it has only 150MB free of 256MB, and it should have 512MB.

I checked the file /proc/meminfo, MemTotal information. It only shows 256MB.
Is there a possibility that the Android "hid" 256MB of RAM from the user?
This is not uncommon in the embedded world. A prominent example is the Samsung Galaxy S, which is advertised with 512MB RAM. But only 300 something are actually available for the OS. I believe the other part is used for the (powerful) GPU. 

This leads to effects where a similar device is faster. For example the HTC Desire/Nexus One both have 512MB (576MB for the Desire) and overall play in the same league as the Galaxy S, but IMHO they are in many situations faster then the Galaxy S. But I am not sure if it's because of the "crappy" stock ROM of the SGS or because of the RAM difference.