It does have something to do with permissions: DAV shares under Dreamhost are owned by the Apache user and they're set with very tight permissions (they aren't world readable). PHP running as CGI scripts (such as phpiCalendar) run with the permissions of the user. So PHP tries to read the calendar files to parse them and it's denied permissions.
There is a very nice workaround in the form of the "publish" script, which allows you to simulate a DAV server using PHP. Go to the directory in your Web site where you've got phpiCalendar and look in the "calendars" directory. Read the file entitled "publish.php" and follow the setup directions.
If you do it correctly, you'll be able to publish calendars using an URL like this one:
Make sure the question mark is at the end, and make sure, when you designate your calendars directory in the config file, that you incude a trailing slash, like this:
$calendar_path = '/home/yourusername/domain.com/ical/calendars/';