What you want is a number $\epsilon$ that is small enough that it isn't zero, but it's its square is zero. Because then we have $f(x+\epsilon)=f(x)+\epsilon f'(x)+0$, for suitable $f$. No real number has this property, but if you're implementing a numerical method on a computer it's straightforward to implement a type containing numbers that do have this property. It'll probably give you better results than anything involving small real numbers.
(BTW There have also been papers published that propose using a complex $\epsilon$ but I think these are misguided.)
What you want is a number $\epsilon$ that is small enough that it isn't zero, but it's square is zero. Because then we have $f(x+\epsilon)=f(x)+\epsilon f'(x)+0$, for suitable $f$. No real number has this property, but if you're implementing a numerical method on a computer it's straightforward to implement a type containing numbers that do have this property. It'll probably give you better results than anything involving small real numbers.
(BTW There have also been papers published that propose using a complex $\epsilon$ but I think these are misguided.)