Why is two hours the maximum acceptable offset for Bitcoin blocks?
Transactions don't have a timestamp. Blocks have a timestamp. The difference is important, because the block timestamp on some of the blocks changes the difficulty.


  Why is the maximum difference two hours?


It's not particularly important to have very accurate timestamps. Timestamps have two uses:


Difficulty retargeting
Calculating progress of synchronization. If the blockchain started in 2009, and the last block you saw was made in 2012, then you're about halfway done.



  Or, if this is about time zones and summer time, shouldn't they be using UTC time?


They do. Of course, not all systems are set up correctly. For example, imagine a system that doesn't use NTP. The user doesn't know how to set up DST correctly, so they move their computer's clock forward/backward an hour every spring/fall.