To be sure, a dedicated brute forcer could still brute force any system using f2b... it just might take a few months/years instead of a few days.
(However, as noted by other commenters, there's something to be said about obscurity within a system's overall security scheme. You just have to strike a balance...)
Relying on obscurity alone is the mistake you are alluding to.
Why wouldn't you recommend using fail2ban and changing the port?
Ok, sure.
>Why wouldn't you recommend using fail2ban and changing the port?
IMO, changing the port will have nearly the same overall effect as f2b: minimizing the number of failed password attempts from unknown users.
To that end, changing the port is changing one value in a config file, which has the attractive advantage of being far simpler to setup + maintain.
Setup and maintenance are virtually zero though, for f2b. I know, I just installed it.
A one liner to install on most systems and updates along with everything else when your package manager does the updates.