As for the features, Cloudflare wins. It offers a wider range of services, for example, security (Free SSL certificate, DDoS Protection, Web Application Firewall) and image and mobile optimization. It means that you can have an all-in-one solution and avoid paying for other platforms.
AWS CloudFront is a more traditional CDN that offers only content delivery services. The reason behind it is easy: AWS CloudFront is usually used by companies that already use other AWS services and, therefore, have access to additional functionality from the AWS umbrella.