MEMS microphone different output voltage at the same dB
You fix it by implementing the weighting used in sound pressure level meters.

Sound pressure level (SPL) meters filter the sound before measuring it.  They are not normally used with the straight microphone input.

Most SPL meters follow the A weighting curve.  There are other standards as well.

They look like this:



From the Wikipedia article

That removes a lot of frequencies that will be in your "dynamic sound."  

Due to different frequency content, it is entirely possible for two sounds to measure the same loudness on an SPL meter but still have drastic differences in appearance (and voltage levels) when viewed on an oscilloscope.

Another thing that contributes to this is that SPL meters also filter the SPL measurement itself.  A short but loud noise won't read as high as a continuous but less loud noise.  You'll need a low pass filter one the output of your peak detector to mimic the time response curves for the different time weightings used.

Wikipedia has a chart of the time weightings:



Your circuit appears to have something like the A-weighting implemented but not the time weighting.



One last thing:

Different microphones have different dynamic ranges.  A sound that your SPL meter can accurately measure may cause your MEMS microphone to distort and deliver incorrect levels.

Microphones also have different frequency responses.  Your MEMS microphone loses signal below about 100 Hz and above about 10 kHz.  That will distort your A-weighting curve.



Missed the most important part.  

dB is a logarithmic scale.

If you double the voltage, that looks like an enormous difference in your oscilloscope view.  It is only 3dB, though.

You'll need to implement a log amplifier in your circuit and scale the result to get correct dB readings.  

It might be easier to use an ADC to sample the peak detector output and do the dB conversions in a microprocessor than to implement an accurate log amplifier.