I think Scott's answer is valid and one way to look at it.
I'd use a slightly different explanation.
Whether it's spec or pro-bono work, you're not getting paid, and someone is benefiting from your work (at least, there's a perceived benefit).
The difference is that with pro-bono, the project is treated as a proper project. There's a schedule, there's a budget (of time), there's requirements, ways to measure success, strategy, consultation, revisions, etc, etc.
Spec work tends not to posses any of the key steps that a project requires to produce good work.
All that said, I'd use these definitions:
pro-bono work: A mutually rewarding relationship between the graphic designer and the client where all aspects of a graphic design project are met with the exception that in lieu of payment for services rendered, the designer is donating their time to the cause. Designers typically offer up pro-bono work to non-profits, friends and family, and the like.
spec work: Spec work tends to fall into two camps:
Client Pitches based on RFPs. Extremely common in the ad agency world (and, for some odd reason, the architecture industry). Large clients send out RFPs asking firms to produce creative briefs and present them. The logic is the clients feel they are prestigious enough that agencies will want to compete for their account. Agencies then spend actual efforts to produce creative work with no guarantee of a paid contract. I don't agree with it, but can appreciate the fact that, at least for traditional ad agencies, a big client equates to huge amounts of media buys which can be a lucrative gamble
Design contests/"Show me what you got before I hire you". These tend to attract clients that have no interest in the proper design process, strategic planning, or paying for value. They believe quantity is the key rather than quality. As such, these types of spec contests attract designers that tend to lack the same.
In general, pro-bono work can be a good thing. The designer is still treated as a designer, the client is still treated as a client, and the project is treated as a proper project. In the end, the solution can be a quality solution.
Spec work, not so much. There are no real projects, no real strategy, and no real design thinking involved. Much more of a crap shoot and rarely produces quality work for any party involved.