If you asked me the same question about freelancing (design, programming, etc), then I would say: no, never. But running workshops is different, and it often does make sense to give it away.
If you’re freelancing, clients will try to low-ball you by promising that you’ll benefit from the intangible perks of building your portfolio and gaining exposure. But in the case of freelancing, they’re lying, and neither benefit is real. For example, you can gain portfolio/skills just as easily (and on your own terms) by simply working on hobby projects (while documenting & sharing the process as you do so). And unless the client is willing to devote active PR effort to the results of your work, then the promotional benefit doesn’t really exist unless you decide to do it yourself.
In other words, the appeal of working for free is supposedly to gain these two benefits:
Portfolio and skill-building
Exposure and dealflow
It doesn’t hold up for freelancing. So what makes workshops behave differently?
First, gathering an audience is hard work, and you can’t exactly hone your skills (or build a portfolio of teaching experiences) without one. So if someone has done the hard work of putting together a group of people who want to learn from you, then it may well be worth the effort to show up and teach, even unpaid.
Second, the world of events is surprisingly small, and it’s common for folks who organise their own events to also show up as attendees at others. So—unlike freelancing—giving an unpaid workshop does offer a certain amount of guaranteed, natural exposure.
(If you’re doing plenty of unpaid gigs, but still not getting paid invitations, then you may want to read about why they aren’t paying you and how to fix it.)
One complication appears if you’re already getting paid, but are still interested in occasionally doing unpaid work. Being too random here can undermine your pricing (“But Jake said you taught at his event for free…?”). The solution is to draw a line in the sand, where you always do one type of teaching for free, but never do another without being paid. For example, your line in the sand might be based on who is in the audience (e.g. schools and universities are always free, but conferences and corporates are always paid). In my case, I draw the division based on interactivity, time, and travel. If you want me to give a lecture of up to one hour, and if I’m already in the right city, then I’m always happy to come by and do the best job possible, completely for free. But if you want me to talk for more than an hour, or to travel, or to make it in any way “workshoppy” (i.e. interactive), then I’m going to bill at my full rates. This sort of clear “rule” will hugely simplify your proposals and negotiations, while allowing you to build your skills, portfolio, reputation, and dealflow. And of course, that all helps you increase your teaching day-rates.