This due to the fact when your STDOUT
is not connected to tty, but to a file, block-sized buffering is used, if it is connected to tty, line-based buffering is used.
If you ran your command without NOHUP, the output (both stdout and stderr) would still be connected to the same tty, and it would be line-buffered. The default behavior of NOHUP is to write to nohup.out
file. Since buffers are generally a lot bigger than lines, it will take much longer to "display" the results.