The reason is .local is a special case TLD for link-local networking with name resolution through things like mdns, by trying to hijack it for other use things might not go as you intend. Alternatively, .localhost is just a reserved TLD so it has no other usage to check.
https://en.wikipedia.org/wiki/.local
https://en.wikipedia.org/wiki/.localhost