In reply to Farhad:
Variables declared as part of a for-loop are always automatic.
But it does not matter whether the local variable was static or automatic; there is only once instance of j shared among all of the forked processes. By the time those $write statements execute, j has reached its terminal value, 3.
See https://verificationacademy.com/forums/systemverilog/fork-joinnone-inside-loop