First, try to prove $f(x)$ is uniformly continuous on $[s,\infty)$ for any given $s>0$, which I'll leave as an exercise :)
Edit: after thinking about this for a while I find the proof of uniform continuity quite non-trivial, contrary to how it appears at first glance. Here's a post that has a nice answer that uses Baire Category Theorem, which might be admittedly a bit too advanced for this problem. Nonetheless I find the answer very insightful and helpful to understanding OP's problem as well.
Let's then proceed to prove by contradiction. Suppose there exist $0\le a < b$ and $m > 0$ such that $\forall M > 0$, $\exists x > M$ such that $\sup_{l\in [a,b]}|f(x+l)-f(x)|>m$, then there exist a sequence $\{x_k\}_{k\in\Bbb N_+}, x_k\to\infty$ such that
$$\sup_{l\in [a,b]}|f(x_k+l)-f(x_k)|>m,\quad\forall k\in\Bbb N_+$$
Recall the definition of $\sup$, we can of course fix an $\epsilon_1 > 0$, by which we can then pick a sequence $\{l_k\}_{k\in\Bbb N_+}\subset [a,b]$ such that
$$|f(x_k+l_k)-f(x_k)|>m-\epsilon_1,\quad\forall k\in\Bbb N_+$$
Just for convenience, let's say we pick $\epsilon_1=m/2$, then we have $|f(x_k+l_k)-f(x_k)|>m/2$ in the above statement.
Recall that a bounded sequence must have a convergent subsequence. We can pick a subsequence of $l_k$, denoted as $l_{k_j}$ such that $l_{k_j}\to l_0\in[a,b]$ as $j\to\infty$. Then we have
$$|f(x_{k_j}+l_0)-f(x_{k_j})|\ge |f(x_{k_j}+l_{x_j})-f(x_{k_j})|-|f(x_{k_j}+l_0)-f(x_{k_j}+l_{x_j})|$$
The first term on RHS is greater than $m/2$. For the second term, recall the uniform continuity of $f$ proved initially, which says that given any $\epsilon_2 > 0$, however small, there exist $G>0, \delta >0$ such that $|f(x+\delta)-f(x)|<\epsilon_2,\forall x>G$, if we pick $\epsilon_2=m/4$, then there exists $j'\in\Bbb N_+$ such that
$$|f(x_{k_j}+l_0)-f(x_{k_j}+l_{x_j})|<m/4,\quad \forall j>j'$$
Therefore
$$|f(x_{k_j}+l_0)-f(x_{k_j})|\ge m/2-m/4=m/4>0,\quad\forall j>j'$$
which contradicts that $\lim_{x\to\infty}(f(x+l_0)-f(x_0))=0$.