Vesak commemorates the birth, awakening and death of the Buddha, and it does so on a single day in the Theravada world because the tradition holds all three fell on the same full moon.
The month is Vesakha in Pali, corresponding roughly to April or May. The date is therefore lunar, and it moves in the Gregorian calendar. Where it moves to depends on which lunisolar calendar a country uses, and the Buddhist countries do not use one calendar.
Sri Lanka, Cambodia and Malaysia generally take the first full moon of May. Thailand, Laos and Singapore reckon by their own lunar month, which can put the observance a month apart from a neighbour's in years when the intercalary month falls differently. Myanmar keeps its own. The differences are calendrical, not doctrinal.
The World Fellowship of Buddhists, at its founding conference in Sri Lanka in 1950, resolved to promote the observance of the full moon day of May as Vesak, and the United Nations recognised the day in 1999. Neither imposed a single date, and the resolutions were framed to accommodate the existing variation.
East Asian Buddhism separates the three events entirely. China, Korea, Japan and Vietnam keep the Buddha's birth on the eighth day of the fourth lunar month, in Japan, fixed to 8 April in the Gregorian calendar after the Meiji calendar reform, and observe the awakening as Bodhi Day and the death as Nirvana Day on separate dates.
So the question of when Vesak falls has no single answer, and the reasons are entirely mechanical.