Некоторые причины этого не включают:
Не все базы данных имеют битовый тип данных, поэтому вместо них вы должны использовать int, чтобы иметь возможность использовать разные бэкэнды
В некоторых базах данных нельзя индексировать битовые поля.
И часто то, что у вас есть, не является истинным / ложным, да / нет без других возможностей. Например, у вас может быть битовое поле для статуса, означающее что-то вроде открытого или закрытого. Но позже вы понимаете, что вам также нужно отменить статус.