Please keep the Octave community in copy when you report issues with GNU Octave functions.
I do not understadn what you are saying about diff, try the following example
t = linspace(0,1,1000)';
x = sin(2*pi*t);
y=2*pi*cos(2*pi*t); # time derivative of x
z=-(2*pi).^2*sin(2*pi*t); # second time derivative of x
dt=t(2)-t(1);
h=plot(t,[y z],'k-', t, [0; diff(x,1)]/dt,'g.', t, [0;0; diff(x,2)]/dt^2,'r.');
set(h(1:2),"linewidth",8)
As you see diff(x,2) approximates the second derivative, not the difference of elements with lag 2. You can propose you own checks.
If findpeaks is not working for you trying setting the parameters to fit your data. Also, are you using findpeaks from the repository? there were several bugs fixes in that one.
Let me know if you have problems.