La diferencia es sutil. En muchos casos son intercambiable. "May" significa tener permisión (más formal) o posibilidad, y "can" significa tener abilidad o a vezes tener permision (menos formal). Por ejemplo:
May I join you? Can I join you? ... ¿les importa que les acompañe?
Can I borrow your pen? ... ¿Puedo tomar prestado su pluma?
He can run. ... Tiene la abilidad para correr o puede correr.
He may run. ... Hay una posibilidad que corriere.
He may run. ... Ha estado dado permisión para correr
Espero que sea un poco más claro.