If you build a heap bottom-up (heapify), most nodes are near the leaves and move only a small distance. The total work across all nodes forms a decreasing series, which sums to O(n). Doing n inserts one-by-one is O(n log n), but bottom-up heapify is O(n).
Expanding on the short answer — what usually matters in practice:
A tiny example (an explanation template):
// Example: discuss trade-offs for "building-a-heap-from-an-array:-why-can-it-be-o(n"
function explain() {
// Start from the core idea:
// If you build a heap bottom-up (heapify), most nodes are near the leaves and move only a sm
}