It's due to the weighting function used in the Gaussian pyramid downsampling.
Lets take a 1D patch(1D patch because it makes our calculation easy and also the kernel is separable) with p10,p11,p12,p13,p14,p15 in the Level 1.
Assume maximum gradient possible is Max - Min between any two pixels.
The pixel p20 in level 2 is formed by influence of pixels p10,p11,p12,p13,p14 in level1 and pixel p21 if formed by influence of pixels p12,p13,p14,p15,p16. The corresponding image(I'm not not able to upload image).
The weights of the kernel are
w(0) = a,
w(-1) = w(1) = 1/4
w(-2) = w(2) = 1/4 -a/2.
For Gaussian pyramid a = 0.4(approximately)
w(0) = 0.4
w(-1) = w(1) = 0.25
w(-2) = w(2) = 0.05
The equation for new pixel p20
p21 = w(-2)*p10 +w(-1)*p11+w(0)*p12 +w(1)*p13+w(2)*p14
Substituting the values for the weights we get,
p20 = 0.05*p10 + 0.25*p11 + 0.4*p12 + 0.25*p13 + 0.05*p14
Similarly value of pixel p21
p21 = 0.05*p12 + 0.25*p13 +0.4*p14 +0.25*p15 + 0.05*p16
Now the difference between pixels p20 and p21 is,
p20 - p21 = 0.05*p10 + 0.25*p11 +0.35*p12 -0.35*p14 -0.25*p15+0.05*p16
So for the difference to be maximum p10 = p11 =p12 = Max and p14=p15=p16 = Min
p20 -p21 = 0.7(Max-Min)
p20- p21 = (Max -Min)/√2
Since the filters are separable, applying the kernel in another direction over the image again will reduce the pixel difference by a ratio of √2.
The maximum gradient in x and y direction in next level of Gaussian pyramid is (Max - Min)/2
The maximum gradient possible is reduced by half or in frequency domain reduces the frequency by half(an octave).