B-trees have high branching factor, so they stay shallow and reduce disk IO (fewer page reads). BSTs are pointer-heavy and deep; they are good in memory but inefficient on disk compared to page-friendly B-trees.