Factory Method is a design pattern to construct an object. If you are a C# person, this link should help. https://www.dofactory.com/net/factory-method-design-pattern
NopCommerce uses Factory Method extensively. This gives flexibility to add new concrete classes with added or new functionality in place of existing classes.
Once you get a clear understanding of factory pattern, then you would know on why it is used in nopcommerce.