The difference could be explained by having ‘Save as Render’ unchecked.
Some other things to consider:-
What file format are you saving to?
Blender renders to a 32 bit float buffer. If the image is saved to an 8 bit file format most of that data is immediately discarded.
Curve adjustments are not applied to .exr files on save.
Filmic display presets are not applied to .exr files on save.
What image editor is displaying the image, and using what colour profile?
Blender doesn’t apply an image profile to saved renders. Untagged images will be interpreted using whatever defaults each display application uses for untagged images.
Is the monitor profiled?
If it is then every application displaying the image needs to be aware of the monitor profile. Including the one creating the screenshot.
The first thing to do is to apply a suitable colour profile to the saved image if it is 8bit, and use a colour managed image editor.
The only sure way is to have, and use, a properly set up monitor profile.
It’s great that you are asking the questions, however you are also introducing yourself to a hellish new world.
Here’s an example of the kinds of issues artists have to deal with:-