The main problem with scala.actors is that they silently drop messages that aren’t understood, and the implementation of that strategy means that they leak memory every time they drop a message. They’re also not quite as flexible or configurable as akka actors, and til recently they didn’t have a decent Future abstraction (now it’s more or less using Akka’s).
Akka also has all kinds of cool extras that scala.actors doesn’t have, like durable mailboxes, coordinated transactions (though not across remote actors AFAIK), agents (basically one-off actors), and supervisor hierarchies.
Scalaz actors are like the absolute barest minimum API, it’s a send operator, an effect strategy, an optional error handler, and that’s it. But from that minimal base, you can construct pretty much anything else you want, as long as you’re willing to dive into some hairy type theory to do it. I’m pondering porting scalaz actors to Java, since the implementation is simple enough to do it. Not going to bother til I have a use case for doing it in Java and not Scala though…