Sure a few reasons.
Most importantly, JUnit rules are easier to reason with and compose than TestNG annotations and subclasses. Ex. there are JUnit rules we can use to verify logging, exceptions, even System.err! Also, our mock and live tests would be less boilerplate or complicated as composable rules vs what we do now.
Secondly, JUnit's lifecycle is simpler. We have a lot of tests that need to be marked single threaded or similar because TestNG defaults to sharing test instances.
Finally, the assume feature is a nicer way of dealing with conditional tests than throwing skip exceptions.
In short, TestNG was > JUnit for us years ago. However, modern JUnit and especially rules (that other people write) makes what we do simpler.
Make sense?
-A