Потому-что это ВНЕШНИЙ отступ. Отступ от одного элемента до другого. В вашем случае у элемента header(условно) свой background серого цвета, а у следующего section черного. Решение 1 - background-color: black для body и дальше переопределение стилей по каскаду. Вариант 2 - padding-top для заголовка во втором блоке.