As opção por uma das duas preposições implica a mobilização de sentidos ligeiramente diferentes.
A preposição em tem um valor de localização espacial. Assim, nas expressões «dor nas costas» ou «dor nos joelhos» indica-se o local onde a dor ocorre1.
A preposição de tem um valor que indica o origem ou a fonte de algo. Desta forma, as expressões «dor de costas» ou «dor de joelhos» apontam para o local onde a dor tem origem2.
Disponha sempre!
1. Raposo e Xavier in Raposo et al., Gramática do Português. Fundação Calouste Gulbenkian, pp. 1547-1548.
2. Idem, ibid., pp. 1548-1550.