A coroutine looks exactly like a normal subroutine, and to the caller it behaves like one -- you invoke it, it does its thing, and returns some values. No continuations necessary (though they do make things easier) for them.
A continuation's a somewhat more complex thing, though the fact that you can do coroutines with continuations (with some complications) makes things a bit fuzzy. I'll go into some detail on the differences at some point when I've got a bit of time.
in reply to (Semi-OT) Coroutine vs Continuation?