Business logic as far as possible must be expressed in declarative way.
Java have very poor facilities for declarative programming.
SQL (not PL/SQL) on other side - is pure declarative language. It's already powerful DSL if you master it.
And yes, I agree with you, that writing logic in PL/SQL (as in imperative language) is equally terrible as writing it in Java.