Before anything else, read the Performance Tips–you shouldn’t work with non-constant variables in global scope.
using BenchmarkTools
# declare global-scope variables as constants, otherwise the compiler can't
# stably infer the variable's type
const L = 500 # integer literals in Julia don't require conversion
const v3 = [[rand(L) for i = 1:L] for j = 1:L]
const vec_mat = Array{Matrix}(L);
const arr = rand(L, L, L);
fill!(vec_mat, rand(L, L));
@btime v3 .+= 1.0
@btime vec_mat .+= 1.0
@btime arr .+= 1.0
5.767 s (250500 allocations: 993.80 MiB)
5.411 s (1000 allocations: 953.71 MiB)
86.659 ms (0 allocations: 0 bytes)