In order to CNAME for Sub Domain work properly with CloudFlare you have to make it toggled to “DNS Only” mode. CloudFlare’s default setting: is “Proxied”
In the screenshot, it’s set totheorange cloud icon.

In other words changing CNAME status from Orange to the Grey cloud option will do the job for you.

For other options read : CNAME Flattening