With the debugger, you can only see the application state at one specific point at the time.
With added print statements, you get a nice history of the application state.
If I already know where exactly something is going wrong: sure, I'll could a breakpoint there, if needed - often it's not.
If I don't know where exactly the problem is, I'll add print statements.