The root of of what keeps the "pull" system entrenched is the regime where whomever originates a fraudulent transaction into the network is responsible for dealing with the mess.
This explains why banks have explicit daily transfer limits for their bank to bank transfer feature (and online bill pay) outgoing and incoming, but will let arbitrarily high debit transactions post to your account from elsewhere. You click dispute, your bank sends back an ACH reject, and then the originating bank needs to figure out wtf happened.
This also explains why local banks ACH initiation limits are obscenely low - same risk profile as online-only banks, but they'd rather not have to clean up messes (whereas the online banks are basically forced to be in that business).
This creates a stable system of course, whereby it's in no individual bank's interest to start encouraging push transfers - they'd just have to potentially deal with even more fallout for no gain.