Why does current_user_can(‘edit_posts’) return true, but current_user_can(‘edit_post’, $post->ID) returns false?

The post in question is published, but your user is missing the edit_published_posts capability, so they’re not allowed to edit it.