Do I need a diode to protect my ESP32 from a connected relay?
Basically, yes you need to protect any switching device from the inductive kickback.

Yes, the IO pins have internal protection diodes, but they are meant for ESD protection, they are not meant to be used as part of normal operation, that would be considered bad design. On most chips, the amount of injected current would exceed the safe limits.

So the problem is, you should not be driving the relay power directly from the IO pin to begin with, but with a transistor. As per the relay specification, the voltage of the IO pin is not even guaranteed to operate the relay. Even if it seems to work now, it may not be reliable, especially now that the internal ESD protection diode has already had extra burden on it for which it is not designed for.