To dodge a punch, you need to be able to read a bodies intentions. Things such as slight shoulder movement or repositioning of a limb.
This way, you'll have a slight moment before a punch is thrown to initiate your dodge. Dodge too early and your opponent will just adjust their trajectory. Dodge too late and you'll get punched.
This is the only reason feints are such an effective tool. This however also means that feints are oftentimes pointless against untrained individuals.