Probably because the current default date is 30rd and February doesn't go that far. And then it assumes it's in March.
This is mentioned on the manual as well.
If format does not contain the character ! then portions of the generated time which are not specified in format will be set to the current system time.
You're best off by also defining the day of the month.
$date = date_create_from_format('d-m', '01-02');