The default mode. In this mode, every time bash is about to print its prompt, it first checks to see whether any background jobs have stopped or terminated, and if so it prints notification messages before displaying the prompt.
set +b never corrupts the display, but it has its own problems. In particular, suppose you are testing a GUI program whose ...
By default, bash is usually set to tell you a background job has changed status only when a command prompt is ready to be displayed.
You can enable this synchronous notification to asynchronous with set -b. But it's not without its disadvantages - for example, it has no concept of cursor line position if you are currently entering a command.
Make a bug report to the maintainers of dash.
It seems that dash does return empty output in case that jobs is run in a subshell.
Do you really need to use dash? It is know for not being POSIX compliant for several reasons.