Why is this an issue?

Having two Cases in the same Select statement or branches in the same If structure with the same implementation is at best duplicate code, and at worst a coding error. If the same logic is truly needed for both instances, then in an If structure they should be combined, or for a Select, one should fall through to the other.

Noncompliant code example

Select i
  Case 1
    DoFirst()
    DoSomething()
  Case 2
    DoSomethingDifferent()
  Case 3  ' Noncompliant; duplicates case 1's implementation
    DoFirst()
    DoSomething()
  Case Else:
    DoTheRest()
End Select

If a >= 0 AndAlso a < 10 Then
  DoFirst()
  DoTheThing()
ElseIf a >= 10 AndAlso a < 20 Then
  DoTheOtherThing()
ElseIf a >= 20 AndAlso a < 50   ' Noncompliant; duplicates first condition
  DoFirst()
  DoTheThing()
Else
  DoTheRest();
End If

Exceptions

Blocks in an If chain or Case clause that contain a single line of code are ignored.

If a >= 0 AndAlso a < 10 Then
  DoTheThing()
ElseIf a >= 10 AndAlso a < 20 Then
  DoTheOtherThing()
ElseIf a >= 20 AndAlso a < 50   ' no issue, usually this is done on purpose to increase the readability
  DoTheThing()
End If

But this exception does not apply to If chains without Else-s, or to Select-s without Case Else clauses when all branches have the same single line of code. In case of If chains with Else-s, or of Select-es with Case Else clauses, rule {rule:vbnet:S3923} raises a bug.

If a >= 0 AndAlso a < 10 Then
  DoTheThing()
ElseIf a >= 10 AndAlso a < 20 Then
  DoTheOtherThing()  ' Noncompliant, this might have been done on purpose but probably not
End If