Effectiveness refers to how well the job was done. Was your defect removal process effective? Well that is judged by how many defects were removed and how many were left.
Efficiency refers to how well your resources were used. Was your defect removal process efficient? How much time/effort/money did it cost to perform it?
So, for example, if you removed all the defects and it took you two years, that would be effective but not efficient. But if you removed 10% of the defects in 30 seconds, that would be efficient but not effective.
(Of course what actual numbers apply here depends on the particular application, but I hope this conveys the general idea.)
In regards to test case effectiveness, if they find most of the bugs submitted then it is effective. However, if the process takes 2 hours to complete each time you check in some new software and your programmers are waiting around for that time, then, even if it found all the bugs, it would not be particularly efficient. (Perhaps it would be better to find the bugs manually rather than have your programmers sitting around waiting for the build to complete.)