Yes, a share hash is a hash of a bitcoin block. Some of them are above the bitcoin network difficulty which means the block is valid. Most are not, and can only be used to show that you are mining (and at what rate).
The data being hashed is the block header. The block header contains the merkle root which is created from the transactions. The transactions are not part of the block header. A bitcoin block is the header plus the transactions.
With the GBT (getblocktemplate) mining protocol you do get all the data, including transactions. This could be used to try and detect if the pool is doing something bad. It could also be used as you say to let the user see the transactions he or she is including in blocks. With GBT there is even the possibility for the miner to remove or add transactions, if supported by the pool. Most of this is still not implemented by miners and pools.
Stratum had an extension to allow you to fetch the transactions for the block you are currently mining. I'm not sure if any pools support it, though.
So far Stratum seems most popular, probably due to its efficiency (low bandwidth usage and fast block changes). GBT, which aims for the transparency you are talking about, has a lot more overhead.
BitMinter
implementsGBT
orStratum
? EDIT: Oh, I just noticed it uses both. stratum+tcp://mint.bitminter.com:3333 (Stratum) or http://mint.bitminter.com:8332 (GBT or getwork) – Macarse Apr 09 '13 at 11:42