Starting December 1st, 2017 all the providers must
If you planing on leaving your provider, just call in and ask to unlock your phone.
There are a few caveats. Bhell will not unlock a phone they sold in the past unless you are a current customer. Corporate accounts still have locked phones and no free lunch either. But then again these accounts get much cheaper monthly rates.
If you phone your provider and request to have your phone unlocked, they'll send you completion instructions within 4 hours.
As per @will13am's post, Bell doesn't unlock Bell locked phones unless you are a Bell customer. The exception, only if you make it a PR nightmare for Bell will they unlock it for you.
Maybe the actions of that one person will make Bell change their policies.
If you look at the CRTC rules, the carrier must unlock the phone if requested to do so by the "customer". Without an account, the person would not be considered a "customer" from Bell's point of view?
Rogers is bad too because they would only unlock the phone for the original purchaser of the device when my brother called in to have them unlock an iPhone. In the end, I paid $5 on ebay and got it unlocked in a few hours.
PM's policy so far only Telus/Koodo phones: