Yes, I do have an idea why that would be.
Because this shader is highly reliant on having the unique object to world transform matrix for the current mesh. And Unity particle systems by default do not have a unique object to world transform matrix per particle. They don't even have unique object to world transform matrices per particle system as the use a batched mesh that is pre-transformed into world space.
To get the shader to work with particles, you'd need to rewrite it to be an instanced mesh particle system shader, which does have a unique per particle object to world transform matrix.