why is this?

It's a known crash bug.

While Opera Mail is closed, edit the signatureN.txt file (where N is the number for the account in accounts.ini) in the mail folder (see help -> about Opera Mail for the location). Put the HTML markup that loads the remote image in the file.

For example:

<img src="remote address to image">

Why can't I just browse to my desktop to add it like any other email programs?

Opera Mail has just never supported that. You can only embed remote images. That's a problem of course as mail clients usually block remote images in received messages by default which will cause your image in the signature to be blocked by default for your recipients.

As a workaround though, you can use the data URI kitchen to create a data URI of the image. Then, you can put that in src="" in the signature file.

However, that workaround won't work for some of your recipients. A lot of clients don't support data URIs as sources in HTML emails. It'll work in Opera though (send a message to yourself) and maybe Thunderbird.

The crash bug will never be fixed in Opera Mail as Opera isn't working on mail anymore. In fact, Opera Mail is just Opera 12.16 with most of the browser stuff hidden (and lots of settings missing). It also introduced quite a few bugs. Opera Mail is just an experimental, unfinished product. Instead, you can just use Opera 12.17 for just mail. In "Alt + p -> advanced -> programs", add/set the http and https protocols to open in your default browser so that clicking on links in messages opens in the default browser.

Opera isn't working on Opera 12 anymore either though. They started over with a new Opera browser that doesn't even have mail. So, don't expect any fixes for mail in Opera 12 either. But, at least it won't have the crash bug.