Can pruned nodes perform fee estimation?
Yes, if it has a mempool (no -blocksonly).
No matter the number of blocks stored, what matters is how many blocks it has been watching (ie received at the time of generation, with transactions that were part of its mempool).