Como Pasten sugirió en los comentarios, la herramienta clave aquí es el teorema de Siegel, y esto ya fue hecho por Silverman, ver "Teorema A" en
Joseph H. Silverman: Puntos enteros, aproximación diofantina y iteración de funciones racionales, Duke Math. J. 71 (1993) #3, 793--829.
Proposición. Fije una función racional $f \in {\bf Q}(x)$, y algún $n_0 \in {\bf Q} \cup \{\infty\}$; para $i=1,2,3,\ldots$, defina $n_i$ de forma inductiva por $n_i = f(n_{i-1})$. Entonces si $n_i \in \bf Z$ para infinitos $i$, entonces o bien
(i) $\{n_i\}$ es periódico, o
(ii) $f$ tiene la forma $f(x) = c + a/(x-c)^m$ para algunos $a,c \in \bf Q$ (con $a \neq 0$) y $m>1$, o
(iii) $f$ es un polinomio.
En cada caso también es posible que $n_i \notin \bf Z$ para infinitos $i$. Tenga en cuenta que el caso (ii) contiene el ejemplo de Kimball, y de hecho es equivalente a este bajo conjugación por $x \mapsto x+c$.
La clave es que si $\{n_i\}$ no es periódico entonces para cada $j=1,2,3,\ldots$ la $j$-ésima iteración $f^j$ satisface $f^j(x) \in \bf Z$ para infinitos $x \in \bf Q$ distintos, por lo que $f^j$ tiene a lo sumo dos polos distintos. Según el teorema de Siegel sobre puntos enteros. Silverman utiliza esto para mostrar que $f^2$ es un polinomio, y luego que $f$ es o bien un polinomio o de la forma exhibida en (ii) al citar un resultado de
A. Beardon: Iteración de funciones racionales (GTM 132), Nueva York: Springer 1991
($\S$4.1), que describe como "elemental" y "bien conocido", y también prueba como Proposición 1.1 de su artículo (páginas 798--799).
Un ejemplo simple de un polinomio cuyas iteraciones pueden tomar tanto valores enteros como no enteros es $f(x) = x + a$ para $a$ no integral en $\bf Q$, por ejemplo $f(x) = x+\frac12$. Ejemplos más complicados como $f(x) = 2x^2 + \frac12$ pueden obtenerse como $f(x) = P(cx)/c$ para polinomios adecuados $P$ de grado $2$ o mayor (aquí $P(x) = x^2+1$ y $c=2$). Incluso se pueden construir ejemplos como $f(x) = x^2 + \frac{x}{2}$ para los cuales es probablemente cierto que las iteraciones de cada entero incluyen tanto enteros como no enteros, pero esto es muy difícil de probar (este ejemplo codifica el comportamiento de la paridad de las iteraciones de $x \mapsto (x^2+x)/2$).