A few reasons:
By using .local for your internal network, you are almost 100% certain that
the internal namespace you select will -never- conflict with an existing
commercial namespace. Let's say that you create your internal namespace as
"mybigfatgreekinternalnetwork.com", but do not register that domain with a
public registrar. Several months later, someone in the public space
registers mybigfatgreekinternalnetwork.com for their public website, and the
public website is one that your internal clients need to access to do
research. Commence: name resolution problems.
You can also use company.local and company.com to segregate your internal
and external resources, helping to ensure that your internal network
information doesn't "leak" to the public DNS servers since it's not using a
valid top-level domain name.