I'm finding some things are a bit awkward, particularly around templates and routing. Also, the documentation while good is lacking in other parts.
Play is a very prescriptive framework but only on a couple of choices do I have an issue.
The first is about transactions. Each HTTP request is a transaction. Generally I'm fine with this but you need a way to override or control this (IMHO).
Second, I like the mixin approach with controllers (@With(...)). I wish there were something similar with models.
Third, and this is the biggest, it doesn't integrate with Maven, which is something I'm very tempted to fork it for. There's no reason it can't be a Maven plugin/archetype, use Maven for dependencies (directly, rather than tortuous syntax in dependencies.yml), etc. Some guy has an alpha version of something like this already when I last looked.
Fourth, while I don't necessarily mind that controllers are static (as a way of indicating they're stateless it seems), that's actually an issue for parallellizing tests.
Play 2.0 is moving even further away from this and using SBT, which I've never used but heard mixed things about.
I can't speak to many of the specifics of this post (eg I only use Play on Linux).
Whatever (valid) criticisms you can level against Play I'd still far and away prefer to use it over any other Java Web framework I have used or know about.