In the world of computer programming, "the client" is the desktop interface that a person using an application sees. A "thick" client is one where that part of the application must be downloaded to the desktop. It may be written in java or C# or some other language, but it runs on its own and calls an application server over the network. A "thin" client is one that requires no additional software be downloaded. Today this typically means a web application that uses a browser to present the application to the user, but could mean a specialized terminal device.
A major advantage of the thin client is the ability to make changes to the application without having to push software to every desktop that uses it. In some cases, such as when businesses sell goods and services over the internet, this is an absolute necessity; with concerns about viruses, most people don't like installing unknown software on their PC. But even within the confined network of a business, it is much more difficult to install, even automatically, a new copy of the application on all the desktops that use it.
Less Expensive Terminals
Thin client applications tend to have much of their complex business logic on the remote server, because the thin client software is not capable of running such logic. This can mean that less powerful and therefore less expensive PCs will work, as they are only running a browser, as opposed to complicated business transactions interacting with a database.
Poorer Response Times
Because the thin client leaves the majority of the business logic on the server, it must call that server for any change. Even populating a list in a drop-down menu will often require a trip to the server and back. Thick clients can retrieve and store more information locally, and validate data on the spot, rather than waiting for the data to be sent to the server, reviewed and then sent back.
Less Robust Transactional Support
A thin client, such as a browser, does not maintain a permanent link to the server and then to the database. When a call is made, it's completed, the result handed back to the PC and the connection is severed. With a thick client, a connection can be made and maintained, so that if something happens to the transaction, the client and server are connected and can recover much more simply, as both know the current status of the data.
Because of the lessened need for processing power on the PC and the lack of permanent connection to the server, thin clients need lighter PCs and do not create as much network load, but typically need more robust servers to handle all the business logic. Thick clients are the opposite in terms of resource use. Depending on current circumstances, such as server sizing or load on the network, one or the other model may be more advantageous to the business using the application.