The LM358 is a pretty bad op-amp, especially when you run it off a single +5V Supply! When you ask its output pin to source more than a couple of mA, it will only pull the output to about 2.5V.
It is better at sinking current than sourcing current. It will pull the output pin to ~100 mV when sinking 10mA. I suggest you reverse the inverting and non-inverting inputs, and connect the LED and its current limiting resistor between the output pin and the +5V supply. Or buy a modern rail-to-rail op-amp which is capable of sourcing and sinking > 20mA.