SDCC targets a variety of 8-bit mcus and comes with a subset of the C library that is expected by embedded systems. Its library is written in C which makes it portable across all its targets but that comes at the expense of code size and speed. It sticks to vanilla C and a generic target so there is no mechanism to build for specific z80 systems. Nevertheless the quality of code generated by the compiler is comparatively of high for the z80 (and probably others too). The main selling point of sdcc is quality code generation and modern standards compliance (most C89, much C99, some C11).
Z88DK is a development kit that specifically targets the z80. Ostensibly it provides the same sort of facilities. However it comes with a C library that tries to be complete and is written in assembly language. It's probably close to ten times larger than sdcc's and is a few times smaller and faster. Its C compiler (sccz80) is small-C derived although most of the restrictions of small-C have been eliminated (it supports floats, longs, ansi, etc and approaches C89 compliance with some notable omissions). sdcc's compiler generates faster code but until recently it has also been larger code. sccz80 has always been intended to generate small code with speed gains achieved through the hand-written library functions. z88dk has a mechanism to target specific z80-machines so that the same source code can be compiled for cp/m, zx spectrum or rc2014 with a change in compiler switch. The libraries do not confine themselves to the standard and there are many additions to do with sound, graphics, compression and so on whose availability depends on the target. The main selling point of z88dk is its comprehensive libraries and ease of use.
In the past year there has been cross-pollination between the two projects. Into sdcc went some of z88dk's calling conventions. Into z88dk went sdcc-z80
So now z88dk can use either sdcc or sccz80 as c compiler. z88dk uses a patched version of sdcc-z80 that improves its generated code (5-40% size reduction depending on the source code -- a more likely number is 5-10% ; the 40% comes from frequent use of floats, longs and longlongs) and addresses some of sdcc's code generation bugs. sdcc is used to translate to asm only and then that output is plugged into z88dk's back end. This allows sdcc to use z88dk's more complete machine language C libraries and its crts so that it's simple matter to compile for eg, an rc2014, cp/m or a zx spectrum using the same source code by employing a different command line switch.
In short, the z88dk/sdcc combination puts together the best of both projects and is available through z88dk.