Well if you take the midpoint between two colours you're going to lose some of what made them the original colours, especially where these two are so far removed from each other
I missed your question between Blue 0000FF and Navy 000080, but basically what's happening is that the brighter blue has more blue and the darker blue has less blue
When you convert a colour to a hex code, it has three channels for Red, Green, and Blue. Pure blue is R-00 G-00 B-FF. These numbers are expressed as hexadecimal either for historic reasons or because they fit nicely into two characters, but basically it ranges from 0-255. You might think 80 for navy blue is on the lower end, but it's actually near the midpoint as 170 (this trips a lot of people up)
Pure black is #000000 and white is #FFFFFF. You could also look at that as R-00 G-00 B-00 and R-255 G-255 B-255. What's happening to turn the blue into navy blue is essentially that you give it less blue, and since there's less colour overall the swatch becomes darker
I made a little game about this stuff if you want to mess around with colours. I assumed anybody who looked at it is probably familiar with how hex codes work, but if someone isn't then it might be informative