This is very simple to do but your life will be much easier if you have one name per line instead of a space separated list. There are many excellent utilities for manipulating text files in Linux, it is one of the things that all *nixes excel at, but most expect one item per line. So, most of my solutions will start with modifying the files accordingly.
Change your files to have one name per line:
sed 's/ /\n/g' file > newfile
or, to modify the original file
sed -i 's/ /\n/g' file
Once you've done that, any of these will give you what you want:
grep
$ grep -vFwf file2 file1
anna
laura
comm
or diff
$ comm -23 <(sort file1) <(sort file2)
anna
laura
$ diff file1 file2 | grep -Po '<\s+\K.*'
anna
laura
awk
$ awk '(NR==FNR){a[$1]++; next}!($1 in a){print}' file2 file1
laura
anna
Perl
$ perl -lne 'BEGIN{open(A,"file2"); while(<A>){chomp; $k{$_}++}} print unless $k{$_}' file2 file1
laura
anna
or
$ perl -lne '$k{$_}++; END{map{print unless $k{$_}>1}keys(%k)}' file2 file1
laura
anna
If you really don't want to change the format of your file (but really, you should), you can do something like
awk '{for (i=1;i<=NF;i++){a[$i]++}}END{for(n in a){if(a[n]<2){print n}}}' file2 file1
or
perl -lane '$k{$_}++ for @F; END{map{print if $k{$_}<2} keys(%k)}' file1 file2