I am experiencing the exact same problem that you originally described, ymf. The error message is identical. I, too, am not sure why DLL files are referenced in a Linux environment. However, once upon a time this was not an issue for me.
When my server was first setup, I used logged into WHM/cPanel to use EasyApache (the Apache updater) in order to recompile Apache with the GD module installed. The module installed successfully and '--with-gd' showed up when I ran phpinfo(). After uncommentting the line read "extension=php_gd2.dll" within my php.ini file, I was able to generate captchas with no problem.
That was then, this is now. I have recently "reprovisioned" my server, which is fancy-speak for having my host reinstall my server from scratch and set it up like a brand new account. Once again, I had to recompile Apache to include the GD module. And once again, it showed up successfully when I ran phpinfo(). But now when I go to use the GD library, I get the same error message:
"Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/php_gd2.dll'"
I SSH'd into my account as the superuser and searched for the php_gd2.dll file but it was nowhere to be found. I did however find "gd.so". I edited php.ini to point to the location of gd.so for modules and thought I'd solved the problem. Now, when I make calls to the GD library, I get this error:
PHP Warning: PHP Startup: gd: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
I tried telling my host about this issue and how it used to work, but the second I mention anything about the php.ini file, GD, or use the word "module", they immediately tell me it's outside the scope of their responsibilities and that I ought to Google some more.
Anyway, I just want to be able to reference the DLL file like I used to. Any ideas?