Which unit the bootstrap draws

Several rows are visits of one person. A percentile interval is formed by drawing those rows independently and recomputing the statistic.

Why is that interval usually too short for a contrast that varies between people?

The independent unit is the person, not the visit. Drawing visits treats each visit as a new person and ignores the dependence among visits of the same person. The recomputed contrasts then vary less than contrasts computed from independent people, so the percentiles sit too close together and the interval is too short. Draw people, and keep every visit of a drawn person. The same mistake, for a series, is to draw time points in a random order. The dependence has to stay inside the block that is resampled.