The efficiency will be dependant on your workload. If you're doing a lot of IO work then EM has a good chance of winning as you won't incur the cost of context switches. There is a lot of time spent idle when doing IO.
On the other hand, if you're doing compute intensive work, then it, again, depends. EM has a thread pool with 20 threads, if you have more then 20 parallel computations then spawning the right number of Ruby threads will be better.
EM threads are just Ruby threads. They're kept in a thread pool so you save a bit of overhead starting/stopping the thread as it executes. EM also handles passing work out to the threads when you've asked for more then 20 items of work.
If you want to compare them, just create an EM program and a threaded program that are the same that model your workload. Then time how long they take to finish.