- Scala's type system feels at the same time more complex and less powerful. It has worse type inference, for example.
- Being a hybrid language, Scala offers fewer guarantees than a pure FP language. For example, its type system isn't adequate to express and constrain side effects.
- Scala seems more verbose and less elegant than Haskell to me.
- Compatibility with Java means Scala has some warts like allowing nulls. Yes, you have the Option type. But something you expect to be of type Option can still be null due to carelessness!
- Some libraries used by the Scala community, such as Actors in Akka, seem to eschew the static type systems that's the raison d'etre to use something like Scala (or Haskell) and seem a lot like dynamic typing, except without the simplicity of dynamic typing.
- Lastly, the highly opinionated "Mostly functional programming doesn't work" [1][2]
For instance, Scala's OO/module system is one of the best ones out there, but is readily dismissed by Haskell people, despite modularity being a complete train-wreck in Haskell.
I think there's a good argument, albeit one I'm not qualified to make, about whether Ml modules or Scala objects are better.