Basicamente isso acontece pq o Windows usa o relógio do sistema como "hora local", e o Ubuntu usa como "UTC".
Durante o horário de verão, a nossa hora local fica 2 horas atrás da hora UTC (também chamada de "hora de referência"). Fora do horário de verão, a diferença é de 3 horas.
A solução correta seria o Windows usar a hora UTC, pois é a hora de referência. Pelo que vi no link passado pelo druidaobelix, as versões mais novas do windows já corrigiram esse erro. Mas não parece ser o seu caso...
Daí, usa-se a solução fácil: faça o Ubuntu usar a hora local.
Para isso, crie ou edite o arquivo /etc/defaults/hwclock e adicione a ele a linha abaixo.
HWCLOCKPARS=--localtime
PS: No manual do comando "hwclock", há uma dica pra forçar o Window 7 e em diante a usar o relógio em UTC, definindo a chave de registro "RealTimeIsUniversal"