A cache miss is expensive because we have to search for memory in main memory. Reads/writes in main memory are typically slower because of the time to seek to the right location, as well as the actual memory speed when compared to reading memory from the cache.