È un comportamento normale.

Puoi recuperare lo sato della barra di scorrimento verticale con:

document.body.scrollTop

Però, un momento, questa stessa cambierà in seguito al jump; quindi, memorizzane il valore in una variabile prima di eseguire location.href per l' IFRAME.
Così:

var pos = parent.document.body.scrollTop;
document.location.href = "path/page.html";
parent.document.body.scrollTop = pos;

parent. ci permette dall' iframe, di riferirsi alla finestra madre; altrimenti, recuperiamo il document.body.scrollTop dell' iframe stesso.
L' iframe va pensato come una window dentro un' altra window; un browser dentro un browser.