Eu não sei exatamente o que você está tentando fazer com xargs
e parece que você está perdendo um argumento no seu CP. É ~/Documents/foundfiles/${filelist[i]}
onde você deseja copiar para ?
Aqui está o código que funciona para mim:
#!/usr/bin/env bash
mapfile -t filelist < ~/tmp/filelist.txt
for file in "${filelist[@]}"; do
find ~ -name "$file" -exec cp --parents {} ~/tmp/dest/ \;
done