One word, labor, designing a good website just plain takes a lot of time.
To break the process down a little bit. First we create a nice looking design that represents your business well, then we have to code all the pages into HTML, the language that your web browser reads, make all the graphics and images and optimize them to download quickly. Then we need to make sure that all of our work will look good no matter what browser or operating system someone is using by testing and making revisions. We also have to make sure our work will perform well on search engines. It all adds up to a lot of hours in front of the computer. The average website we develop takes between 40 and 80 hours of labor and that is why websites are so expensive.
There are some low-cost, template based alternatives available to the budget conscious business that I will discuss in a future installment here.