The x
that will be passed to your anonymous function is already a cell array, you don't need to wrap it in braces {x}
so the correct version is:
MyCell=cellfun(@(x) setdiff(x,{'Dontwant.mat'}), MyCell , 'uniformoutput', 0);
setdiff
also works if one argument is string so you can simplify it by using
MyCell=cellfun(@(x) setdiff(x,'Dontwant.mat'), MyCell , 'uniformoutput', 0);