The differences between render operator and viewport render are that the viewport render has:
Blender Internal
Eevee
- Uses the Viewport sampling setting
- No Overscan (see Objects, shadows and reflections not rendering in EEVEE)
- Unlike Cycles, motion blur is previewed (only in camera view)
Cycles
- No motion blur
- No tiled rendering.
- Uses preview progressive samples setting.
- Render layer settings will be ignored.
- Pause and resume
- Uses dynamic BVH by default.
See Why is rendered viewport faster than rendering individual frames? and What does static/dynamic BVH do?
All
- No compositing.
- Modifiers and objects preview settings are used:
- Particle display percentage is used.
- A preview can be made from any view-port, a render can only be made from a camera object.
- No way to save output (except for a screenshot).
Note: I'm not sure if this list is complete, these may not be the only differences.