Maybe this isn’t an entirely fair comparison since in benchmarking the fill! call, the array A is in-cache (because @btime calls fill! over and over on the same array and reports the fastest time). On the other hand, improving cache locality is a real benefit of pre-allocating arrays.
(Obviously, if your initialization is significantly more complicated than simply setting the entries to zero, then the initialization time could become more important.)