Because job notifications are tied to interactive mode, not monitor mode. The description of what
set -m does is quite misleading. It has a number of effects such as forcing pipelines to run in their own process group, and causes traps on CHLD to trigger for each background process. It doesn't actually do anything to affect whether "job control" works. You can still use all the job related commands and refer to jobs using jobspecs even with
set +m, so long as your OS supports job control.
The same applies to ksh. I'm not aware of any way to disable or hide job notifications. If Bash is started with interactive mode you will always see them, even if you subsequently
set +i (which AFAICT has no effect after startup). I find
set +b makes things slightly more tolerable. If you're writing a script that makes use of job control for fancy multi-processing then you won't have to worry about it anyway.