В основном, это из-за нашего календаря. День солнцестояния - день когда Солнце проходит точку солнцестояния.
Возьмем, например, 2006 год. Солнце прошло точку солнцестояния 21 июня в 16:26 MSK. В 2007 году тропический год длиннее календарного на 0,2422 дня = 5ч49м. Значит, в 2007 году момент солнцестояния придется на 21 июня на 22ч15м. 2008 год будет високосным. Поэтому, в 2008 году летнее солнцестояние сдвинется на 0,7578 дня = 18ч11м, то есть будет опять 21 июня, но в 4ч04м и т.д. Через четыре года ситуация не будет тождественна текущей, т.к. средняя продолжительность календарного года (365,25 сут) (за 4 года) больше продолжительности тропического года на 11 минут, таким образом, момент солнцестояния имеет некое «вековое движение» по датам календаря, смещаясь к началу года. В юлианском календаре набирались бы одни сутки за 128 лет. В нашем, григорианском немного хитерее. 2100 год не будет високосным. В 2096 году солнцестояние наступит 20июня в 17ч59м (4ч04м-11м*22). После этого семь лет не будет добавочных дней. То есть, к 2103 году момент равноденствия сдвинется на 7*5ч49м = 1д16ч43м и придется на 22 июня 10ч42м. То же самое будет происходить около 2200 и 2300, пока, наконец все не вернется к совеременному состоянию (почти вернется) около 2400 года.