Why opamp output doesn't match with the calculation?
While the input range of an LM358 goes all the way to the negative supply voltage (ground in this case), the output range does not. According to the TI datasheet, you are not guaranteed to get closer than 20mV to the negative supply rail.

Remember also that this amplifier has an input offset voltage of several millivolts.