BIP38 ("Passphrase-protected private key") utilises "Scrypt"... which is notoriously "slow" when it comes to attempting to bruteforce it. It was chosen for this very reason
As you can see from
the stats on this BIP38 bruteforce tool... it took 337.219 seconds to check 500 passwords! at a speed of roughly 1 passphrase per 0.675 seconds
This bruteforce tool was running at around 0.6s/passphrase during the run in
this video. As the video presenter points out "it is not a very fast bruteforcer"...
There is also this one:
https://github.com/cculianu/brute38 (no idea on the speed)