The problem is not that index already exists but there are duplicate values of the TopicShortName field in the table itself. Such duplicates prevent the creation of a UNIQUE index.
So you should run a query to confirm that you have a duplicate:
SELECT TopicShortName, COUNT(*) FROM DimMeasureTopic GROUP BY TopicShortName HAVING COUNT(*) > 1
Presumably in the other database the data are different, and the duplicates are not present.
This will certainly solve your problem.
https://www.ibm.com/support/pages/refresh-fails-create-unique-index-statement-terminated-because-duplicate-key-was-found-error-while-replicating-sql-server-target