Nothing inherent to Jupyter (it is not like Jupyter notebooks vs. Python REPL), just some niceties:
- low latency (it feels more responsive)
- interactive output (tqdm works)
- how Python objects are displayed by default
Essentially a good implementation of Python code blocks would reimplement half of Jupyter anyway.