Python 3, 66 63 bytes
Graças às idéias das respostas JavaScript / ES aqui, consegui espremer alguns bytes. Indexar um dicionário - chaves inexistentes aumentarão a KeyError. O código a seguir funciona no fuso horário local
import time;print({1:'Merry Christmas'}['c 25'in time.ctime()])
O formato de saída para ctimenão depende da localidade - o formato é sempre ~ 'Sun Dec 25 19:23:05 2016'. Como somente em dezembro termina a abreviação de três letras c, é seguro usá-lo 'c 25'in time.ctime()aqui.
Versão anterior:
Isso funciona no fuso horário UTC. Para o fuso horário local, é necessário s/gm/localmais 3 bytes. No Python 2, pode-se remover parênteses de print65 bytes.
import time;print({(12,25):'Merry Christmas'}[time.gmtime()[1:3]])
A construção lança KeyErrorem outras datas:
>>> import time;print({(1,1):'Happy New Year'}[time.gmtime()[1:3]])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: (12, 25)