OK, it looks like even some advanced users give me a wrong answer to my question. So I repeat my old comment to a wrong (deleted) answer so that everyone can see cleary why it is wrong
Each element of c = {s} argument of cellfun; meaning s has then 3 rows, and not 1.
If you replace in my code example the input string array with numerical array it will work as expected
s=[1; 2; 3] % replace problematic string input s=["1"; "2"; "3"]
s = 3×1
1
2
3
size(s,1)
ans = 3
c = {s};
cellfun(@(s) size(s,1), c) % correct
ans = 3
cellfun('size', c, 1) % correct
ans = 3