It is absolutely better to use One Time Passwords (like most 2-factor auth solutions these days with a random number either generated by an app or token or something or supplied to you via an out-of-band channel like an SMS message).
It is not better to choose One Time Passwords, as the user experience hit is horrible and can you imagine the horrible passwords one would come up with if they needed to come up with a new one on every login action?.
Basically, users are bad at choosing/creating passwords. And passwords get compromised. So, the best solution (that we currently have, anyway) is to have the user pick one really good (hard to guess) password and then to also use a One Time Password (2FA).