He is incorrect tho.
Game doesn't roll the dice each moonfire tick, that would be retarded.
Game rolls dices
independently of moonfire ticks (and all other spells), it only takes tick/spell time as a reference.
This is why you have this text in most passive effects: "
Your spells and abilities have a chance to trigger..."
For example if you have a trinket that procs passive haste (internal cooldown 1 minute) with a text like this.
Game already knows when that trinket will activate,
more or less because of ICD,
and if you are past the activation time your next spell will simply activate it.
ICD - internal cooldown.
https://wow.gamepedia.com/Real_PPM
here is more info on this one:
It can proc from any damage/healing event.
It keeps track of the last time it had a chance to proc for that enchant.
It calculates the
difference in time since the last chance to proc. It uses that time to determine the chance for that event to trigger a proc.
For example, if you have 22% Haste, it was 1.4sec since the last chance to proc, and you've got Windsong, then the chance to proc is 2(ppm) * 1.22(haste) * 1.4(time since last chance) / 60 (sec per min) = 5.693%.
The 'time since the last chance to proc' is capped at 10sec, so that your first attack of a fight isn't a guaranteed proc.
There are independant timers
So what is this actually happens:
for each character and each passive effect procs there are independent dice rolls thu fight.
When it activates it recalcuates your stats and procs the visual effect or procs effects that does not affect your stats (like gushing wound)
WHEN you press a spell or dot makes a tick AFTER the internal GCD has ended, it calculates a chance
BUT it ultimately is what makes game slower, the number of passive effects. Removal of snapshotting wasn't the problem.