Actually when I tried it I did not use a wildcard match (i.e. /home/user/*sh). In other words I just used:
rsync -avz --delete --recursive testing/ testing2/
The above worked, however when I did:
rsync -avz --delete --recursive testing/*sh testing2/
it would no longer delete files on the destination side.
The man page has the following section related to --delete
You must have asked rsync to send the whole directory (e.g. "dir" or "dir/") without using a wildcard for the directory’s contents (e.g. "dir/*") since the wildcard is expanded by the shell and rsync thus gets a request to transfer individual files, not the files’ parent directory.