passing the parameters of sp_executesql to sp_ineachdb or sp_foreachdb
Unfortunately, sp_ineachdb was not designed with this specific use case in mind (nested dynamic SQL with parameters), and I don't know if you can do all you want to do with this script without any dynamic SQL at all. I think this approach will be a bit simpler - you'll have to call sp_ineachdb twice, but the dynamic SQL portion is much, much simpler, and you won't have to relay parameters for the procedure to in turn pass along to its own internal sp_executesql call.

DECLARE @indexname nvarchar(128) = N'uc_emailAddress',
        @cmd       nvarchar(max) = N'SELECT db = DB_NAME(),0;';

DROP TABLE IF EXISTS #radhe;    

CREATE TABLE #radhe
(
  dbname sysname, 
  indexname nvarchar(128), 
  the_index_exist_here bit
);

INSERT #radhe(dbname,the_index_exist_here)
EXEC master.dbo.sp_ineachdb @command = @cmd, @user_only = 1;

UPDATE #radhe SET indexname = @indexname;

SET @cmd = N'UPDATE r SET the_index_exist_here = 1
    FROM #radhe AS r
    INNER JOIN sys.indexes AS i
    ON r.dbname = DB_NAME()
    AND i.name = r.indexname;';

EXEC master.dbo.sp_ineachdb @cmd;

SELECT dbname, the_index_exist_here FROM #radhe;