Threads are different from goroutines. A Go program can create 100'000 goroutines, if it makes sense for the algorithm. Try doing this with threads... Super-cheap threads open many possibilities, it's a significant change in how you think and design programs.
Among your examples, those that are comparable to goroutines are all for functional languages. There's nothing wrong with functional languages, but it's far from "all mainstream languages".
So they are a bit different, in the spirit of Go: they make for a simple and general solution to both parallelism and concurrency. They combine naturally with channels to give the functionality of OS threads, user threads and fibers.
As an aside: watching Pike's talk on lexing and parsing in Go really hits this point home. It shows how language support for cheap threads (goroutines) and channels really change the way you come up with an algorithm.
Java: java.util.concurrent
.NET Task Parallel Library
C++ Parallel Patterns Library Threading Building Blocks Click Cilk Plus
D Actors + std.concurrency
Erlang Actors
Scala Actors
Haskell STM
Clojure STM
There are good things about Go, but people should learn other programming languages properly, before doing comparisons.