Ok, depois de mais algumas escavações e da sugestão de @Marc B, finalmente cheguei onde queria. Caso alguém mais precise de ajuda, aqui está minha resposta:
set @price = (select preconormal from precos where codigowine='10088' order by timestamp asc limit 1);
Na linha acima, estou definindo @price para o primeiro registro em vez de zero, para evitar obter um lag_price de 65,60 na primeira linha.
Abaixo está o resultado real:
select codigowine, preconormal - @price as lag_price, @price:=preconormal curr_price from precos WHERE codigowine='10088' order by timestamp;
Aqui está o violino trabalhando.