If you set the layer type to "dynamic", the client will ask the server for a single large map image to be generated for the current extent of the map. If the service on the server has cached tiles, it will stitch the tiles together and resample the image to match the requested scale and spatial reference. This can reduce the output quality vs. loading the tiles directly into the client. You can try setting imageformat="png32" to see if this improves the output quality. Another option, if you're using a 10.1 server, is to enable dynamic layers on the service and then the server will produce the new image from the source data instead. This means that the cached tiles would not be used at all. For the best performance though you'll need to set the layer type to "tiled" and make sure that all the "tiled" layers are cached using the same spatial reference and scales.