Ik denk dat het inderdaad van de implementatie afhangt, maar je kunt een idee krijgen van de verschillen door in MySQLdb-bronnen te kijken. Afhankelijk van de opties, bewaart mysqldb fetch* de huidige set rijen in het geheugen of aan de serverzijde, dus fetchmany vs fetchone heeft hier enige flexibiliteit om te weten wat in het (python-)geheugen moet worden bewaard en wat er aan de serverzijde moet worden bewaard.
PEP 249 geeft niet veel details, dus ik denk dat dit is om dingen te optimaliseren, afhankelijk van de database, terwijl de exacte semantiek door de implementatie wordt gedefinieerd.