Connecting a LED directly to a GPIO Pin of ESP32 board?
Since LEDs have manufacturing tolerances, and also the power supply you are using to power up the ESP32 also has some tolerance, it is possible that connecting LED directly to an IO pin will exceed the safe current value.
So the maximum forward voltage value for your LED is 2.8V, but that is the best case which causes least current to flow. The worst case is the minimum forward voltage, which causes the maximum current to flow.
This basically means yes, you must always use a resistor with a LED when driving it from an IO pin. This way, you never have to worry about breaking anything.