Here is a link to a good description of the difference that also has links to other support documentation.
Very generally speaking, arcpy is intended to be used with desktop ArcGIS - either run from a map document (or aprx) or as a standalone script that utilizes the functionality available within a map document.
Buffer, Clip, Data Driven pages, geoprocessing, etc... I use it to simplify the geoprocessing and mapping workflow when using ArcGIS Desktop.
ArcGIS API for Python provides access to an online "GIS" - an ArcGIS Online account or a portal, plus any associated service-hosting servers.
You can create web maps, publish services, stop and start services, list data sources, add/drop users, update metadata, etc... I use it at this time only to gather information about items and services on the portal so I can see where gaps are in our metadata and what data is feeding what item. Helpful with housekeeping of our ArcGIS Enterprise stuff.