For example, a holiday might be assigned a certain day of the month (such as “the second Monday”) instead of a specific date (such as "December 25th") to make sure that you always have a three day weekend to celebrate. By saying a holiday like Memorial Day should always be observed on the last Monday in May, you get a long weekend and some extra time to spend with your family!
Another reason why holidays jump around is because certain people in the world use an entirely different calendar than others. The calendar you're probably used to is the "solar calendar," which follows the sun, starting with January and ending with December. Some people, however, use a "lunar calendar," which follows the moon, instead. Because the Earth does not turn around the sun and moon at the same speed, the months of the two calendars do not match up perfectly. So even though a holiday might have the same date every year in the lunar calendar, it matches up to different dates on the solar calendar!