I could not determine whether it is the expected behavior, neither from the standard nor from comparison with MySQL.
So, CREATE .. SELECT has copied the CHECK constraint from the source table's column.
It seems unexpected, but innocent, until the advanced column constraint capabilities are used. Particularly, in MariaDB column constraints can refer to each other (in MySQL they can't):
Again, CREATE .. SELECT attempts to copy the constraint on b column, only now it fails with a very confusing error:
If it is intended, it should probably be documented.