Back when Windows Forms was originally designed, most Windows developers were still doing their job in C++ using the Win32 API, maybe under a MFC layer. That's largely an imperative API, with a bunch of weird wonky bits and some shortcuts to shuffle data between the screen and your model.
Most of them had never used anything remotely like XAML bindings before. Also, a lot of people who were making Win32 programs were, well, self-taught amateurs in the field of software development, because they were professionals in something else (that happened to need some simple program put together quickly and cheaply). They went around setting Button.IsEnabled to true or false smack in the middle of business logic, and they liked it.
It's not easy to grok a drastically different design paradigm, when you've never seen anything like it, you don't have a solid understanding of what's going on underneath, and you are on a deadline.
Put simply, if Microsoft hadn't made Windows Forms, a crapload of developers would never have jumped to .NET.