Why are all ports closed even without firewall or router?
I think you're getting a bit confused about terminology. Typically ports are often referred to as open, closed, or not reachable.

An open port is one that is not blocked by NAT or a firewall, and has a service answering requests at it. An example would be if you enabled Web Sharing on your Mac, the standard HTTP port (80) would be open.

A closed port is one that is reachable, but has no service to "answer" it. In some cases firewalls or routers with NAT will close ports, but usually this is a port that can be reached, but has no service there.

An unreachable port (which will often show up in port scans as "timed out") is one where the firewall or NAT actively ignores any attempt to contact it, rather than sending a response that says "this port is here, but closed". In theory this is more secure, since it doesn't even confirm to an attacker that there is a computer at the IP they're touching. In reality the benefit may be less, but I'm not qualified enough to make a definitive judgement. This is the status that will show up with most consumer routers and firewalls.

You may want to try a different port scanner, as in my tests, the one you linked doesn't distinguish between closed and ports that timed out.