No, they do have free speech, but even free speech has it’s limits.
When you walk into a school, you leave a majority of your rights at the door.
This student was advocating an students perform and illegal action on school grounds during a school sponsored event. If he hung up a sign that said “Slit Throats for Allah Today” it would be no less illegal.
I don’t care what you may think about the legality of smoking pot, in the end, as of now, it’s illegal and you can not put up signs telling people to do something that is against the law at a school function.
He was off school grounds and not in attendance at school that day.