My father's company gives a bonus and a lunch party. They are a privately owned service business. It's actually a nice time with speeches from the company pres & founder about the company's history, what they do and what each person's effort contributes. New and old employees are recognized. They did have some paid for weekend parties (food, band, etc.) but it sucked up a valuable Saturday during December and too few people wanted it. Instead the owners opted to give everyone Christmas Eve and Christmas Day off as paid holidays this year (along with New Year's Eve and New Year's Day). Everyone was super happy about getting two long weekends and a short work week over the holiday.
Christmas bonuses are gifts from the owners that come out of company profits. Public institutions like schools, hospitals, fire departments use public money. They don't have profits, by definition, only budgets.
I'm actually kinda proud of my dad's company. They've given bonuses every year, even when the company has been running a loss. It's very much a family-owned business with a community atmosphere to it. They work hard but they do care about each other. Growing up with that made me appreciate those small under 100 employee businesses. Corporations are too big and impersonal.