Because nmap does its work by performing various "side-channel attacks" on the packets that are received back from the requests it makes. It expects the packet to go through the normal path of
nmap
-> OS
-> Driver
-> Adapter (yours)
-> Wire
-> Adapter (theirs)
-> Driver
-> OS
-> Application
<- OS
<- Driver
<- Adapter (theirs)
<- Wire
<- Adapter (yours)
<- Driver
<- OS
nmap
However when you are connecting to yourself any of the following optimizations could happen.
nmap
-> OS
-> Driver
-> Adapter (yours)
-> Driver
-> OS
-> Application
<- OS
<- Driver
<- Adapter (yours)
<- Driver
<- OS
nmap
or
nmap
-> OS
-> Driver
-> OS
-> Application
<- OS
<- Driver
<- OS
nmap
or
nmap
-> OS
-> Application
<- OS
nmap
Those other options make it much more complicated for nmap to figure out the information it wants to know, so instead of spending the time to support the 3 possible options they just block requests to yourself.