I prefer using "while true;" as that's easier to read. Arguably, it's less efficient due to calling the external "true".
Strangely though, I much prefer using the builtin "printf" to replace "echo" and "date", though the "date" usage is harder to read.