Почему два false дают undefined ?

Это у вас так в уроках заложено?
Потому что в консоле два false дают false, у вас undefined (undefined)

например условие

var onVacation = false;
var onSickLeave = true;
if(onVacation || onSickLeave){
  console.log('Лучше подождать')
  }

вернет"Лучше подождать" (string)

а это условие

var onVacation = false;
var onSickLeave = false;
if(onVacation || onSickLeave){
  console.log('Лучше подождать')
  }

вернет undefined (undefined)

если проверить в консоле браузера
var a = false
var b = false
c = a || b
console.log( c )
будет false

т.е. я не увидел чтобы в задании было условие, если тру, по идее из примера в консоле || так же возвращает и false

Добавлено.
я кажется понял, в условии нету else, поэтому при обоих false возвращает undefined (undefined), а так бы вернул значение условия else