def in_range(date, start, finish):
    return True in ((start < date) & (date < finish)).unique()
B.date.apply(lambda x: in_range(x, A.start, A.finish))
Эффективно проверять, присутствует ли значение в любом из заданных диапазонов