Here's the other interpretation of 'two puffins ate six fish'. Here it means there were six fish: and two puffins ate them.
So less happy puffins.
Here's the key thing, though. The sentence 'Two puffins ate six fish' is ambiguous but the ambiguity is not due to any particular word. It's not that the word 'puffin' is ambiguous, for example.
This matters because it shows that not all ambiguity is lexical; some of it is, as linguists might say, synatactic or structural.
But why does ambiguity matter to us?
We are constructing a formal language and we want each sentence to have just one truth value, true or false.
In our formal language, we don't want sentences that are true and false.
This means of course that we need to avoid ambiguity.
Insofar as ambiguity is merely lexical--insofar as it is linked to particular words having multiple meanings--it's easy to avoid.
To avoid that sort of ambiguity, lexical ambiguity, we just have to avoid defining words twice. Easy.
But how can we be sure that our formal language involves no syntactic ambiguity?