There is no absolute need for any Arduino program to use
The blink without delay sketch that is included in the standard sketch examples is the canonical illustration of this.
In most cases you don't need to poll your sensors thousands of times a second. It is good discipline to only poll sensors as often as makes sense for the specific application. Sometimes this might be once every five minutes. For example an ambient temperature sensor. In those cases there is nothing to be gained be polling a thousand times a second. To do so wastes resources and is a poor habit that could be troublesome for battery powered applications.
For example, the use of
millis() for timing allows you to effectively poll several peripherals each at different intervals, perhaps averaging some readings to reduce noise, perhaps also updating a display at other intervals that suit human perception.
For long running battery powered applications it is likely that you will benefit from finding out about putting the microcontroller to sleep using
deepSleep() and using interrupts to wake it. A real time clock (RTC) or the watchdog timer interrupt can perhaps be used to schedule your sensor readings and other actions, perhaps in conjunction with
For very simple programs that don't need precise timings.
delay() can be the simplest and clearest way to manage timings.