The difference is the for loop will do everything in one frame and the tickcount or adding variable way will take 30 frames. If the for loop takes too long the browser may complain, thinking it may be an infinite loop but it may not be.
The "for" loop will run 30 times every time it's encountered in the events. That means that everything stops until it finishes. If the events it does is very time consuming then the web browser will show a popup guessing it's an infinite loop, but it's not always, it's just taking too long. Usually for something like level loading you only want to do it once instead of every tick so you'd use "start of layout" or something.
Start of layout
For "t" 1 to 30 do ----- "level loading events"
The tickcount way just runs once per frame for 30 frames (ticks) instead of 30 times in one frame. Doing it that way has the advantage of distributing the time to do something over multiple frames. Specifically this will run once per frame for the first 30 frames.
If tickcount < 30 do ----- "level loading events"
You could also use "is in between values" to run at any frame range. For instance to start at tick 30:
global number Start_Tick = 30
If tickcount is between values Start_Tick to Start_Tick+30-1 do ----- "level loading events"