You are confusing a for loop which causes something to happen for a fixed number of times, with the English usage of "do this for a length of time".
One way to introduce a wait for a time period is to use the delay() function
will wait for 1000 milliseconds. This is all very well, but nothing else can happen during the delay(). That's OK if that is what you want to do but often there is a need for something to happen for a period of time, but for inputs to be read during that period.
To do that you note the start time of the period and then check frequently to see if the period has elapsed. If not, go and do something else. The loop() function provides a very convenient mechanism to do the frequent checking.
This principle is often referred to BlinkWithoutDelay because of the example of that name in the IDE.