Ok, więc po kolejnym kopaniu i sugestii @Marca B w końcu dotarłem tam, gdzie chciałem. Jeśli ktoś inny potrzebuje pomocy, oto moja odpowiedź:
set @price = (select preconormal from precos where codigowine='10088' order by timestamp asc limit 1);
W wierszu powyżej ustawiam @price na pierwszy rekord zamiast na zero, aby uniknąć uzyskania lag_price równej 65,60 w pierwszym wierszu.
Poniżej znajduje się rzeczywisty wynik:
select codigowine, preconormal - @price as lag_price, @price:=preconormal curr_price from precos WHERE codigowine='10088' order by timestamp;
Oto skrzypce działa.