Microcontroller controlled pulse current source
MC4558 opamp isn't specified to run on 3.3V, minimum is 4V.

Its input and output are not rail to rail, so it won't work either. The opamp is used outside of its acceptable input and output ranges so it just won't work at all.

A RRIO opamp like this one would be a better choice. There are lots of cheap and nice CMOS rail to rail opamps from other manufacturers, pick your favorite!

If you have some 5V supply on hand, use this instead, you'll have a lot more headroom.

Now, your choice of 2SK212 JFET is... interesting. First, you have to pull the gate lower than 0V to turn it off, which the opamp can't do. And it won't do 8mA either.

Suggestion: drop the FET, use a proper opamp, and the schematic you linked will work well. The current-sensing resistor should be of a low enough value to ensure that with the max current you want, the drop on the resistor plus the Vf of the laser still leaves headroom for the opamp's output. With a 3V3 supply and a 2V5 laser you should put like 0.2V on the current sense resistor.

Why not just drive the laser from the 3V3 IO with a resistor? Unless you absolutely need a very precise current?...