Nedovolil si to Linux, nýbrž to udělal proto, že jste to tak měl v distribuci nastavené. Linux sám o sobě s časem nic nedělá.
Důvod posunu o dvě hodiny (v době platnosti letního času, v době platnosti standardního času by to byla hodina) je následující: Windows udržují v BIOSu lokální čas, tj. vždy v okamžiku přechodu na letní čas nebo zpět se musí hodiny v BIOSu posunout. Vzhledem k tomu, že hodiny v BIOSu neudržují časovou zónu, jenom datum a čas, musí si pamatovat operační systém, zda už hodiny posunul nebo ne. Kdybyste na tom počítači měl několik instalací Windows, každá vám hodiny posune o hodinu.
V unixech (a tedy i Linuxu) se doporučuje udržovat čas v BIOSu v UTC. Pak ho žádné střídání letního a standardního času nebo jakékoli jiné změny časových pásem neovlivní, hodiny v BIOSu se nemusí přeřizovat a vždy při požadavku na zobrazení data a času se jenom UTC přepočítá do lokální časové zóny.
Unix/Linux si při běhu seřizuje čas podle internetových hodin NTP (takže ho má přesnější, než kdyby spoléhal jen na hodiny v BIOSu), a pouze když se vypíná nebo restartuje, seřídí hodiny BIOSu podle aktuálního času. A pokud používáte doporučené nastavení, nastaví čas v BIOSu právě dle UTC. Nastavení je možné v Linuxu změnit a čas do BIOSu ukládat v lokální časové zóně, ale jak už jsem psal, to nedoporučuju, vzniká z toho jen zmatek. (Nevím, zda si nějaká distribuce ukládá časovou zónu, v jaké do BIOSu čas uložila, jako to dělají Windows.)
Myslím, že Windows už je možné také nastavit, aby čas do BIOSu ukládaly v UTC. Pro počítač s více operačními systémy je to jediné praktické řešení, protože UTC je jediná časová zóna, na které se všechny systémy bez problémů shodnou.