The code looks fine. My guess is that you have another on join event somewhere in the same file that is causing this one to not work. Try moving it to a separate file by clicking File -> New, then paste it there and try again.
For future reference, you can only have one (of the same kind) of even per channel per file. Here's an example:
on *:TEXT:!hi:#MyChannel:{ msg $chan Hi $nick }
on *:TEXT:!hi:#MyChannel:{ msg $chan Hello there $nick }
Since both events are the same (text trigger '!hi' for #MyChannel), the second one is never going to work, unless you place it in a separate file. It hits the first one and stops.
Here's another example:
on *:TEXT:*:#MyChannel:{ msg $chan some text }
on *:TEXT:!hi:#MyChannel:{ msg $chan Hello there $nick }
This time, the events are a bit different but still the same channel and the first is a 'broader' event in that it triggers on any message. However the same thing will happen here. The first event will trigger, and the second one will not.