Driving a 2V LED from a 1V8 FPGA IO pin (MOSFET vs open-drain)
The only reliable and bullet-proof method is to use the MOSFET.  I can tell you that without a doubt that the MOSFET will work.  But I cannot say the same thing for the open drain pin version.  

You may be able to get the LED to light using an open drain pin, but it also might turn on and stay on too.  Or the FPGA pin might get destroyed.  Or it when you turn it off, it might only get dim and not turn off entirely.  A lot of this depends on the FPGA (which you didn't tell us what it is), the exact type of LED, and probably the phase of the moon.  

The "signal path" that keeps the LED lit (dimly) when it should be off is:  +3.3v -> Resistor -> LED -> FPGA Pin -> ESD Protection Diode -> +1.8v.  On the surface this seems unlikely since Vf of both the LED and the protection diode is greater than 3.3v-1.8v.  But you have to remember that Vf decreases as the current through the diode decreases.  So even in this circuit, there could be a small amount of current flowing.  Of course, the question then becomes, "at some small amount of current, will the diode be turned on?"  And that question is very dependant on the diode itself.

Using the MOSFET approach has none of these issues.  If I were designing a product, I would not take shortcuts and instead use the MOSFET approach.