Column Names in a view should always be unique. you can assign an alias name to your columns to differentiate it from Table A and Table B. If you are concerned about the Addition of new Columns in the future, then You can go for Dynamic SQL as below.
DROP TABLE IF EXISTS #TempColumDetails
CREATE TABLE #TempColumDetails ([Id]INT IDENTITY(1,1), [ColumnName] VARCHAR(500),[ColumnAlias] VARCHAR(500),[TableAlias] VARCHAR(50))
INSERT INTO #TempColumDetails
SELECT
COLUMN_NAME AS [ColumnName],
COLUMN_NAME+'_'+'T1' [ColumnAlias],
'T1' AS [TableAlias]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'A'
ORDER BY ORDINAL_POSITION
INSERT INTO #TempColumDetails
SELECT
COLUMN_NAME AS [ColumnName],
COLUMN_NAME+'_'+'T2' [ColumnAlias],
'T2' AS [TableAlias]
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'B'
ORDER BY ORDINAL_POSITION
DECLARE @MaxId INT,@Count INT
SELECT @MaxId = MAX(Id) FROM #TempColumDetails
DECLARE @TSQL NVARCHAR(MAX)
SET @TSQL = 'CREATE OR ALTER VIEW [dbo].[vwSomething]
AS
SELECT ';
SET @Count = 1;
WHILE(@Count<=@MaxId)
BEGIN
DECLARE @ColumnName VARCHAR(500),@ColumnAlias VARCHAR(500),@TableAlias VARCHAR(50)
SELECT @ColumnName = ColumnName, @ColumnAlias = ColumnAlias, @TableAlias = TableAlias FROM #TempColumDetails WHERE Id = @Count
IF(@Count = @MaxId)
BEGIN
SELECT @TSQL = @TSQL+@TableAlias+'.'+@ColumnName+' AS '+@ColumnAlias+' '
END
ELSE
BEGIN
SELECT @TSQL = @TSQL+@TableAlias+'.'+@ColumnName+' AS '+@ColumnAlias+', '
END
SET @Count = @Count + 1;
END
SELECT @TSQL = @TSQL + 'FROM dbo.A T1
JOIN dbo.B T2 ON T1.AID = T2.AID ';
EXEC(@TSQL)