Why is two hours the maximum acceptable offset for Bitcoin blocks? As far as I understand, Bitcoin transactions include a timestamp, but the only requirement is that they don't differ for more than two hours.

But why two hours? For computers that are constantly synced via NTP, two hours seem like a very big difference. I would expect that a difference of 10 minutes should be enough.

Or, if this is about time zones and summer time, shouldn't they be using UTC time?
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.