Coroutines are a hack that is inferior to both real threads (OS supported, true concurrency) and delimited continuations (are functions that multiply instantiate, compose and recurse). Both of these mechanisms can easily simulate coroutines.
Many Common Lisp implementations have threads so effectively, Common Lisp de facto supports coroutines.