Нужны кабинеты, полностью свободные на весь заданный интервал? Тогда так:
SELECT `c`.`name`
FROM `cabinets` AS `c`
WHERE `c`.`id` NOT IN (
SELECT DISTINCT `b`.`cabinet_id`
FROM `busy` AS `b`
WHERE `b`.`date_start` BETWEEN {$s} AND {$e}
OR {$s} BETWEEN `b`.`date_start` AND `b`.`date_end`
)