When you have a 2d game with pixel-art graphics, having a fixed resolution makes many things far easier. You know exactly how much fits on the screen without having to stretch your graphics (and automatic resizing by non-integer factors really hurts the image quality on pixel art). There are games where the camera-space doesn't have much effect on the gameplay. But for other games the sight-range of the player makes a huge difference. This is especially the case for games which do not scroll at all and assume that the screen always shows the complete level. In such games the size of the levels is dictated by the resolution, so you can't support other resolutions anymore unless you either use windowboxing (not much different from running in a window) or stretching (with aforementioned disastrous effects on your graphics).
UI design also becomes far more challenging when you don't know the users resolution. An UI which looks well-proportioned and readable on one aspect-ratio might look like a complete mess with a different one. You also run into problems with UI elements being either too big or too small depending on the users resolution. Automatic resizing is also a problem for 3d games in this case, because many 3d games still use raster-graphics for the UI. I don't want to claim that these problems can not be worked around. A good UI designer using the right tools can create UIs which work on any resolution. But that takes time, skill and dedication, which directly translates to added development cost.
Many low-budget projects do not consider support for multiple resolutions worth the added development cost, so they stick to a single resolution.
Personally I think that running a game in a small window is a huge immersion breaker and very detrimental to the game experience, so I usually take the pain and do my best to make my games able to run fullscreen on any resolution. But that's just my opinion. Other developers might set their priorities differently.