Two ways to remove duplicates from a list
The teacher is obviously using a better way. Check/read more about time complexity for lists in python here (python wiki).
In your case, you are going for a time complexity:

\$ O(n) \$ for iteration
\$ O(n) \$ for .count()
\$ O(n) \$ for intermediate pop
\$ O(n) \$ for .index

for a final (worst case) time: \$ O(n^2) \$ (see explanation in comments from superb rain).
In case of the tutorial:

\$ O(n) \$ for iteration
\$ O(k) \$ for not in check (using \$ k \$ since the list is different now.
\$ O(1) \$ for append

generating a worst case performance of \$ O(n \cdot k) \$.

A more efficient solution, disregarding the order of elements would be the call:
uniques = list(set(numbers))

as suggested in comments. This would have \$ O(n) \$ time.